繁体   English   中英

“python setup.py install”未安装在 virtualenv 中

[英]"python setup.py install" does not install inside virtualenv

我正在尝试使用带有Python 2.7virtualenv中的setup.py安装 python 包。 要求是包,它的依赖项应该放在virtualenv路径的 site-package 文件夹中。

所以我激活了virtualenv并转到setup.py所在的位置。 但是当我运行python setup.py install时,包及其依赖项被安装在系统 python 站点包中。

为了在 virtualenv 中安装它,我必须在 virtualenv 中指定 python 的位置,例如<virtualenv path>/bin/python setup.py install 鉴于 virtualenv 已经激活,这对我来说看起来很奇怪。 这是在 virtualenv 中使用 setup.py 安装的正确方法吗? 如果是,那为什么? 如果不是,那么正确的做法是什么?

编辑:

我运行了which python ,它指向了 virtualenv 中 python 的位置。

我正在使用centos 6机器。

链接的站点包

Virtualenv 可能会将其站点包目录链接到全局站点包。 从手册页(我的是 1.5.2):

--no-site-packages    Don't give access to the global site-packages dir
                      to the virtual environment

在 1.5.2 版本中,此链接为默认链接,您需要在创建环境时另行指定。 在未来的版本中,此行为已切换,因此链接是默认行为。

该怎么办:

您可以通过<environment>/lib/python<ver>/no-global-site-packages.txt文件的存在来检查它是否链接。 如果这存在,则您的站点包链接,这意味着 virtualenv 将安装并使用全局站点包,而不是按照您的预期创建自己的副本。 不幸的是,事后没有办法改变这一点。 这次您需要使用--no-site-packages选项重新创建 virtualenv。

如果您遵循setup.py 上的 py2.7 教程,您将使用

from distutils.core import setup

在我的 virtualenv(CENTOS 6.0 与 --no-site-packages 活动)中,它会产生同样的问题。

相反,如果您使用

from setuptools import setup

有用。

我不知道为什么。 希望其他人能指出来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM