簡體   English   中英

無法使用“ python get-pip.py --user”安裝pip

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

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