簡體   English   中英

無法從虛擬環境、powershell、Windows 10 運行 pip

[英]Can't run pip from virtual environment, powershell, Windows 10

第二次編輯:我無法在 powershell 下使用“-m venv”或“virtualenv”。 我找到了這個:

https://github.com/regisf/virtualenvwrapper-powershell

安裝后,它工作了幾個星期。 Windows 更新后,症狀又回來了。 我現在的解決方法:

c:\ new-virtualenvwrapper  booklook

它給出錯誤消息,但您可以激活 venv

內部 venv:

 PS C:\py\venvs\booklook> env:PYTHONPATH = "C:\py\venvs\booklook\Lib\site-packages\"

 > python -m ensurepip
 > python -m pip install pip

使用文本編輯器編輯 pip.exe(在虛擬環境腳本目錄中)

你會看到底部:c:\\py\\venvs\\booklook\\scripts\\python.exe

將“腳本”更改為腳本

現在 pip 工作....

我懷疑我的問題始於一些名為“Windows 別名”的功能,該功能旨在讓 Windows 用戶更方便地查找 Python。 如果您在使用 python 時遇到問題,請在開始框中鍵入“別名”並查找“管理 WIndows 執行別名”,關閉 python 別名。


編輯以在激活 venv 后顯示 sys.path。

“pip”在不使用虛擬環境時按預期從 powershell cli 工作。 當虛擬環境啟動時,我Fatal error in launcher: Unable to create process using '"c:\\py\\venvs\\x1\\scripts\\python.exe" "C:\\py\\venvs\\x1\\Scripts\\pip.exe"'收到Fatal error in launcher: Unable to create process using '"c:\\py\\venvs\\x1\\scripts\\python.exe" "C:\\py\\venvs\\x1\\Scripts\\pip.exe"'

有各種關於類似問題的報告。 我已經在虛擬環境中重新安裝了 pip,並且我同時使用了python -m venv和 virtualenv。 以下是我在使用-m venv時遇到的錯誤。

編輯:我認為這是一個重要的線索:首先顯示 python 不在我的常規路徑中:

 PS C:\Users\pa2> python
 python : The term 'python' is not recognized as the name of a cmdlet, funct
 ....

然后,一旦我激活 venv,就沒有有用的路徑——特別是“venvs\\x1\\Scripts”不存在。 但是,如原始帖子所示,即使我專門調用“-m venv”生成的 pip,該 pip 也會出錯

 PS C:\Users\pa2> C:\py\venvs\x1\Scripts\Activate.ps1
 (x1) PS C:\Users\pa2> python
 Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import sys
 >>> sys.path
 ['', 'C:\\py\\venvs\\x1\\Scripts\\python36.zip', 'C:\\users\\pa2\\appdata\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\users\\pa2\\appdata\\Local\\Programs\\Python\\Python36\\lib', 'C:\\users\\pa2\\appdata\\Local\\Programs\\Python\\Python36', 'C:\\py\\venvs\\x1']

我的問題是如何使其工作,以便 pip 僅在虛擬環境中運行和安裝軟件包?

部分問題是區分大小寫,此處未顯示,我嘗試創建指向“腳本”的“腳本”符號鏈接,當我這樣做時,我收到“沒有名為 pip 的模塊”消息。

在最后一行中,當它失敗時,診斷是在系統級別(我的 appdata 文件夾)而不是虛擬環境中談論 pip。

我家用機器上的 3.6.6 和 3.8.1 都會發生這種情況。 它不會發生在我的工作機器上。

PS C:\> C:\users\pa2\appdata\Local\Programs\Python\Python36\python.exe -m venv /py/venvs/x1
PS C:\> C:\py\venvs\x1\Scripts\Activate.ps1
(x1) PS C:\> pip
Fatal error in launcher: Unable to create process using '"c:\py\venvs\x1\scripts\python.exe"  "C:\py\venvs\x1\Scripts\pip.exe" '
(x1) PS C:\> cd C:\py\venvs\x1\Scripts\
(x1) PS C:\py\venvs\x1\Scripts> python -m pip install rope
C:\py\venvs\x1\Scripts\python.exe: No module named pip
(x1) PS C:\py\venvs\x1\Scripts> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
(x1) PS C:\py\venvs\x1\Scripts> python get-pip.py
Collecting pip
  Using cached pip-20.0.2-py2.py3-none-any.whl (1.4 MB)
Collecting setuptools
  Using cached setuptools-45.2.0-py3-none-any.whl (584 kB)
Collecting wheel
  Using cached wheel-0.34.2-py2.py3-none-any.whl (26 kB)
Installing collected packages: pip, setuptools, wheel
Successfully installed pip setuptools wheel
(x1) PS C:\py\venvs\x1\Scripts> ls -l pip.exe


    Directory: C:\py\venvs\x1\Scripts


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         2/9/2020   7:02 PM         106344 pip.exe


(x1) PS C:\py\venvs\x1\Scripts> date

Sunday, February 9, 2020 7:02:25 PM


(x1) PS C:\py\venvs\x1\Scripts> python -m pip
C:\py\venvs\x1\Scripts\python.exe: No module named pip
(x1) PS C:\py\venvs\x1\Scripts> pip
Fatal error in launcher: Unable to create process using '"c:\py\venvs\x1\scripts\python.exe"  "C:\py\venvs\x1\Scripts\pip.exe" ': The system cannot find the file specified.

(x1) PS C:\py\venvs\x1\Scripts> cat env:path
C:\py\venvs\x1\Scripts;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Docker\Docker\Resources\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\RSA SecurID Token Common;C:\Program Files\RSA SecurID Token Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Gow\bin;C:\opt\spark\spark-2.4.0-bin-hadoop2.7\bin;c:\bin;C:\Program Files\Amazon\AWSCLI\bin\;C:\Users\pa2\AppData\Local\Microsoft\WindowsApps;
(x1) PS C:\py\venvs\x1\Scripts> .\python.exe .\pip.exe install rope
Traceback (most recent call last):
  File "C:\users\pa2\appdata\Local\Programs\Python\Python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\users\pa2\appdata\Local\Programs\Python\Python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File ".\pip.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'pip'

在 Windows 下,virtual/venv 環境的根目錄上啟用的“區分大小寫”屬性似乎有問題。 禁用它允許pipvenv下正確運行。

去測試:

  1. python -m venv myapp-venv
  2. fsutil file setCaseSensitiveInfo myapp-venv disable
  3. .\\myapp-venv\\Scripts\\activate
  4. pip --version

應顯示版本信息而不是類似如下的錯誤消息:

啟動器中的致命錯誤:無法使用 '"c:\\users\\foo\\myapp-venv\\scripts\\python.exe" "C:\\Users\\Foo\\myapp-venv\\Scripts\\pip.exe" --version 創建進程': 該系統找不到指定的文件。

暫無
暫無

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

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