Python - 使用 virtualenv 手动安装包

Posted

技术标签:

【中文标题】Python - 使用 virtualenv 手动安装包【英文标题】:Python - manually install package using virtualenv 【发布时间】:2011-08-24 04:25:24 【问题描述】:

我有一个要安装到我的 virtualenv 中的 python 程序 - 它是一个 zip 包,我需要解压缩然后运行 ​​setup.py 程序 - 但我的问题更多是关于如何将这些解压缩文件放入我的 virtualenv 所以该软件包是否已安装到 virtualenv 的 site-packages 文件夹中?

我也可以使用 pip install <package name> 从我的 virtualenv 中安装,但由于某种原因,PIP 下载的包已过期。

那么 - 谁能告诉我手动安装软件包的几个简单步骤?

到目前为止,我已经掌握了加载 Virtualenv 的基本命令:

-bash-3.2$ source ~/.bashrc
-bash-3.2$ workon test
(test)-bash-3.2$ //Now I'm working on my virtualenv, but where do I go after this??

那么 - 我将 python 包/程序解压缩到哪里有关系 - 还是在解压缩之前我应该​​先登录到 virtualenv?在我加载 virtualenv 并在里面使用“workon test”命令使用它之后,我安装的任何 python 包,无论我找到它的目录,都会将其自身安装到正确的 virtualenv 的 site-packages 文件夹中吗?

选项 1 是将 python 程序解压缩到 /home/username/tmp - 然后登录到我的 virtualenv,导航到该文件夹​​并运行 setup.py 程序 - 假设 virtualenv 会将所有相关文件传输到它自己的站点-packages 文件夹。

或者场景2是将文件直接解压缩到站点包中,然后从那里运行它(登录到virtualenv之后),等等

感谢您帮助 Python clutz!

【问题讨论】:

【参考方案1】:

我通常会将程序解压缩到一个临时文件夹,然后从该文件夹中,使用 virtualenv python 实例的直接路径运行 setup.py。例如,如果您的 virtualenv 在 /home/username/virtualpy 中,请使用它(从您的临时文件夹中)

/home/username/virtualpy/bin/python setup.py install

这应该将它安装到您的 virtualenv 站点包文件夹中。

【讨论】:

所以真正的导入操作是使用安装在virtualenv中的python(2.6)版本运行python......很好!谢谢德韦尔奇。 确保从临时文件夹运行它; setup.py 可能会认为它是当前文件夹。 这似乎不再需要了。激活虚拟环境后,我只需运行python setup.py installpython setup.py develop,它就会安装在正确的位置。【参考方案2】:

当您切换到虚拟环境时。你应该输入

which python

如果它返回你的虚拟环境所在的路径,那么你可以直接运行这个命令。

$ python setup.py build
$ python setup.py install

但如果它提供的全局级别路径不是您的virtualenv's 路径,那么您应该尝试使用

$ ~/.virtualenv/python-env/bin/python setup.py build
$ ~/.virtualenv/python-env/bin/python setup.py install

【讨论】:

【参考方案3】:

如果无法从存储库安装软件包,请在 venv 下使用 sudo 尝试。 作为 python pathos 包的示例;

/venv3.6/bin$ sudo pip3 install pathos

【讨论】:

【参考方案4】:

PACKAGE_DIR=/一些/包/目录/路径 export VENV=$(pipenv --venv) && export BASE_DIR=$(pwd) && cd $PACKAGE_DIR && $VENV/bin/python setup.py install && cd $BASE_DIR

【讨论】:

以上是关于Python - 使用 virtualenv 手动安装包的主要内容,如果未能解决你的问题,请参考以下文章

Pyenv + virtualenv构建多版本python虚拟环境

python之virtualenv的简单使用

在virtualenv中使用不同的Python版本

Linux下使用 virtualenv 虚拟独立 Python 环境

python:沙盒(virtualenv)

使用virtualenv在ubuntu上搭建python 3开发环境