无法从虚拟环境,PowerShell,Windows 10运行pip

时间:2020-02-10 01:50:20

标签: python powershell pip python-venv

第二次编辑:我无法在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(在虚拟env脚本目录中)

您将看到底部:c:\ py \ venvs \ booklook \ scripts \ python.exe

将“脚本”更改为“脚本”

现在点子有效。...

我怀疑我的问题源于某个名为“ Windows别名”的功能,该功能应该使Windows使用python更加方便。如果您在使用python时遇到问题,请在开始框中键入“ aliases”,然后查找“ Manage WIndows Execution Aliases”,然后关闭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"'

有许多关于类似问题的报道。我已经在虚拟环境中重新安装了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”生成的点,该点也会出错

 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的模块”消息。 / p>

最后一行,当它失败时,诊断程序正在谈论系统级(我的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'

1 个答案:

答案 0 :(得分:1)

似乎在 Windows 下虚拟/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': 系统找不到指定的文件。