python - 在没有访问 pypi 的机器上使用 virtualenv

标签 python virtualenv

我正在尝试在 Ubuntu Server 10.04 上安装一个带有几个软件包的虚拟环境,但是当我尝试创建虚拟环境时,我收到一条错误消息,提示它无法访问 pypi 以安装分发版。

native 可以访问apt,其他的就不行了,我想尽量减少全局包的数量。我也可以手动引入 Python 包,这是我在虚拟环境运行后的计划。

机器安装了python-setuptools、python-pip、python-virtualenv。

如何在离线或接近它的机器上使用 virtualenv?

最佳答案

查看virtualenv.py源码,我们可以看到它在创建venv时使用pip来安装setuptools/pip/wheel。因此我们可以利用 pip 中提供的离线安装选项,通过:

# --extra-search-dir can be set multiple times, then it produces a list
virtualenv --extra-search-dir path/to/setuptoolsPackages --no-download venv

一个完整的例子

# Download pip, setuptools and wheel package to current dir.
ls
# argparse-1.4.0-py2.py3-none-any.whl  pip-8.1.1-py2.py3-none-any.whl  setuptools-20.7.0-py2.py3-none-any.whl  wheel-0.29.0-py2.py3-none-any.whl

# Offline version.
# Set extra-search-dir to current dir.
time virtualenv --extra-search-dir ${PWD} --no-download venv
# New python executable in /home/me/wcftest/venv/bin/python3.5
# Also creating executable in /home/me/wcftest/venv/bin/python
# Installing setuptools, pip, wheel...done.
# 
# real  0m3.670s
# user  0m1.350s
# sys   0m0.161s

# On-line.
time virtualenv venv2
# New python executable in /home/me/wcftest/venv2/bin/python3.5
# Also creating executable in /home/me/wcftest/venv2/bin/python
# Installing setuptools, pip, wheel...done.
# 
# real  0m8.419s
# user  0m1.624s
# sys   0m0.179s

参见 this blog详细解释。

关于python - 在没有访问 pypi 的机器上使用 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20266562/

相关文章:

python - 如何在python中用一个单词替换多个单词?

python - 如何在 CentOS 6.4 上安装两个 python 版本的 pip?

python - 使用 `pip` 部署自定义 python 包

python - 如何在 Arch Linux 中安装 Python 3.8 和 Python 3.9?

CMake - 设置 python virtualenv

python - tox 中未使用 travis secure env 变量

c# - 在 C# 或 Unity 中执行 Python 脚本

python - 如何在小于 numpy 数组维度的 bool 数组子集上索引 numpy 数组?

python - 无法在 virtualenv 中使用 Django

python - 为什么 DataFrame 索引不能用于 .apply() 中的数据字典查找?