簡體   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