[英]Unable to install pip with “python get-pip.py --user”
我無法使用python setup.py --user
安裝pip,我認為我的python安裝通常有點愚蠢。
我希望能夠在用戶不使用sudo的情況下使用pip(在這種情況下為vagrant
)。 我讀過的所有內容都表明上面的方法應該起作用,但它只是拒絕。
如果我使用sudo python setup.py --user
那么它可以正確安裝,但是同樣,由於安裝到用戶目錄,因此sudo不必要。
python setup.py --user
Traceback (most recent call last):
File "setup.py", line 6, in <module>
from setuptools import find_packages, setup
File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 16, in <module>
import setuptools.version
File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/version.py", line 1, in <module>
import pkg_resources
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>
@_call_aside
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside
f(*args, **kwargs)
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 572, in _build_master
ws = cls()
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in __init__
self.add_entry(entry)
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 621, in add_entry
for dist in find_distributions(entry, True):
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1968, in find_on_path
for dist in factory(fullpath):
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2030, in distributions_from_metadata
if len(os.listdir(path)) == 0:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/websocket_client-0.54.0.dist-info'
其他信息...
python -V
Python 3.6.7
which python
/usr/bin/python
另外,我知道我可以使用venv實現我想要的功能,但要點是它應該可以工作,而不能,這a)使我無休止,b)表示我的東西完全是錯誤的設定。
在我看來,似乎您正在嘗試使用非root用戶將內容安裝到系統Python中,因此沒有權限編輯系統站點包中的內容。 請您運行whoami
並查看以哪個用戶身份登錄,如果您以root身份以外的用戶身份登錄,則應使用sudo將軟件包安裝到系統的Python中,例如sudo pip install my_package
。
如果您不想將軟件包安裝到系統的Python site-packages目錄中,那么您可能應該在virtualenv中進行操作,這將為您的項目提供一個自包含的Python env,並且可以在其主目錄中以任何用戶身份創建。
要安裝virtualenv:
sudo pip install virtualenv
然后以用戶身份創建一個新的virtualenv:
virtualenv my_env
假設/激活virtualenv:
source my_env/bin/activate
現在,您可以使用pip作為用戶將軟件包安裝到Python virtualenv中:
pip install my_package
這為您提供了一個完全獨立的Python env,以您的用戶身份運行於系統Python安裝中。 希望這對您有所幫助,如果我誤解了您的用例,請發表評論,並相應地更新我的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.