【发布时间】:2021-09-24 07:06:33
【问题描述】:
我想使用以下命令创建一个venv 环境(不是virtualenv):
sudo apt-get install python3.8-venv
python3.8 -m venv venv_name
source venv_name/bin/activate
但它似乎包含对创建它的系统的依赖关系,并且每当我想使其可移植时都会产生问题。这意味着,当我将此文件夹与我的项目一起复制并在另一台机器上运行时,我希望它能够在不进行任何更改的情况下工作。
但我无法激活环境(它被激活但解释器仍然使用系统的python 和pip。
因此,我尝试在第二台计算机上创建另一个 venv 并将 lib 和 lib64 文件夹从较旧的 venv 复制到较新的 venv (不替换现有文件),但出现以下错误这次:
File "/usr/local/lib/python3.8/ctypes/__init__.py" line 7, in <module>
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
但有趣的是,如果您注意到,新机器中新创建的venv 也在其本地目录中搜索丢失的包,而不是在venv 中。
我如何使venv 及其所有依赖项具有可移植性,并通过激活它可靠地部署到另一台设备中?
【问题讨论】:
标签: linux centos virtualenv python-venv