簡體   English   中英

pip on virtualenv並沒有在正確的python環境中安裝軟件包

[英]pip on virtualenv is not installing packages in the right python environment

在virtualenv上執行source activate之后,我執行以下操作:pip install requests我得到了:

sudo pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages
Cleaning up...

現在當我運行python並嘗試在使用virtualenv python時在python上導入它

>>> import requests
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named requests
>>>

所以我想,哦,也許它正在看錯了python,所以我做了一個python和哪個pip

(dev)sshum@mysite:~/dev/bin$ which python
/var/www/mysite/mysite/dev/bin/python
(dev)sshum@mysite:~/dev/bin$ which pip
/var/www/mysite/mysite/dev/bin/pip

但是,如果我停用並嘗試導入這些包,則會成功導入。 不完全確定我做錯了什么。

這個錯誤發生在我身上,當我從另一個控制台通過pip安裝時,認為我仍處於激活的virtualenv中,但實際上我處於停用的系統Python中。

使用byobu ,我喜歡在一個屏幕上同時打開多個控制台。

  1. 使用F2我打開新的完整窗口
  2. 我激活了virtualenv,我想繼續努力
  3. 出於某種原因,我拆分屏幕並在新的拆分中工作

如果我忘記在新的分裂中激活virtualenv,我遇到了你描述的同樣的問題。

經過一些修補后找到了解決方案。 好像sudo pip install {package}更改了安裝路徑。 由於virtualenv位於var文件夾中,我需要root權限來安裝東西(這是我意識到的不好的做法)。 相反,我選擇做的是su root ,然后使用virtualenv激活pip install

如果其他一切都失敗了或者你想因某種原因繼續使用sudo,只需直接指定pip可執行文件的路徑:

sudo ./my/virtualenv/bin/pip install foobar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM