[英]"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.