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 install
或python 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虚拟环境