[英]"python setup.py install" does not install inside virtualenv
我正在尝试使用带有Python 2.7
的virtualenv
中的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.