【发布时间】:2020-05-25 08:12:25
【问题描述】:
第二次编辑:我无法让“-m venv”或“virtualenv”在 powershell 下工作。我发现了这个:
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"'
有各种类似问题的报告。我已经在虚拟环境中重新安装了 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'
【问题讨论】:
标签: python powershell pip python-venv