我希望在不同的 Linux 机器上创建 python 虚拟环境,这些机器安装了
python-venv
模块,但没有 pip,也无法访问互联网。
我的想法是使用
python3 -m venv --without-pip my-venv-name
for python3 或 python -m virtualenv --no-pip my-venv-name
for python 2.7 创建 python virtual-env,这将生成一个空的虚拟环境,我的问题是我是否使用相同的 python 主要和次要,并复制粘贴来自预先准备好的相同 python 主要和次要虚拟环境的站点包并期望一切正常工作?
值得一提的是,这些软件包将使用相同的 platform_tags 安装在原始 python-virtualenv 中。
更可靠的方法是下载填充虚拟环境所需的 dist 文件,并使用另一台计算机上的 dist 文件从头开始重新创建它。示例:假设您有一个
requirements.txt
以及您需要的依赖项:
# requirements.txt
requests==2.32.3 # etc
在第一台有互联网的机器上:
$ mkdir dist
$ pip download pip -r requirements.txt --dest dist
您现在已经下载了
pip
的 dist 文件和您的项目需求。将 dist
目录内容复制到没有互联网的另一台计算机上。现在在这台机器上运行:
$ python -m venv --without-pip my-venv-name
$ source my-venv-name/bin/activate
(my-venv-name) $ python dist/pip-24.2-py3-none-any.whl/pip install \
-r requirements.txt \
--no-index \
--find-links=dist \
--disable-pip-version-check
这会起作用,因为:
pip
,只需使用pip
的distwheel中的脚本就足够了。--no-index
会指示 pip
忽略 PyPI,而 --find-links=dist
会告诉 pip
从哪里搜索要安装的软件包。 --disable-pip-version-check
是可选的,将加快安装速度,因为 pip
不会尝试访问互联网进行自我更新检查。