我是 python 的初学者,所以请温柔一点,如果您确实有答案,请提供详细信息。
在确保删除所有以前的安装(包括 anaconda)后,我刚刚安装了最新的 python 版本 3.10。我确信我的系统没有任何先前的安装。
安装 python 3.10 后,我打开终端并运行以下命令:
pip list
输出:
pip list
Package Version
---------- -------
pip 21.2.3
setuptools 57.4.0
然后我安装 pipelinev
pip install pipenv
输出
WARNING: The script virtualenv-clone.exe is installed in 'C:\Users\Giulio\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The script virtualenv.exe is installed in 'C:\Users\Giulio\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The scripts pipenv-resolver.exe and pipenv.exe are installed in 'C:\Users\Giulio\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed backports.entry-points-selectable-1.1.0 certifi-2021.10.8 distlib-0.3.3 filelock-3.3.2 pipenv-2021.5.29 platformdirs-2.4.0 six-1.16.0 virtualenv-20.10.0 virtualenv-clone-0.5.7
最后:
pipenv
'pipenv' is not recognized as an internal or external command,
operable program or batch file.
现在我可以看到终端输出 3 个关于环境变量中未包含的路径的警告。 我不明白为什么 Pipenv 安装在用户文件夹中。 事实上,我的 python 安装位于 C:\Program Files 中(因为我确保在安装过程中进行了设置):
where python
C:\Program Files\Python310\python.exe
如果我运行:
python -m pipenv
pipenv 会执行他的操作。 所以好吧,我决定像这样使用它(尽管所有教程都很简单)。 我继续在给定文件夹中创建虚拟环境
python -m pipenv shell
一切正常,我看到输出:
Successfully created virtual environment!
Virtualenv location: C:\Users\Giulio\.virtualenvs\project-dhMbrBv2
最后,我检查 .virtualenvs 相关文件夹:
01/11/2021 10:58 <DIR> .
01/11/2021 10:58 <DIR> ..
01/11/2021 10:54 42 .gitignore
01/11/2021 10:54 38 .project
01/11/2021 10:58 0 contents.txt
01/11/2021 10:54 <DIR> Lib
01/11/2021 10:54 319 pyvenv.cfg
01/11/2021 10:54 <DIR> Scripts
4 File(s) 399 bytes
4 Dir(s) 660,409,012,224 bytes free
现在...不应该有一个 BIN 文件夹还有? 例如,我想在 VSCode 中设置解释器。
我无法理解为什么会出现所有这些小不一致的情况。 很高兴感谢任何帮助!
编辑(1):
显然没有
\bin
文件夹,因为我使用的是Windows:
在 Windows 中,会创建
\Scripts
文件夹。
但是如果没有抢占式调用 python,pipenv 无法运行的问题仍然存在。
“pipenv”未被识别为内部或外部命令,可操作程序或批处理文件
此错误消息表明的系统上未在 PATH 环境变量中添加 pipenv 可执行文件的位置。 这就是为什么必须写
python -m pipenv
来运行它的原因,因为是在明确地告诉 Python 运行
pipenv
模块。
以下是如何解决此问题的步骤,并解决提出的其他问题:
1. 将 Pipenv 添加到的 PATH 环境变量:
-
找到 Pipenv 安装目录:
这通常在
%APPDATA%\Python\Python310\Scripts
中(将Python310
替换为的 Python 版本)。 在的情况下,它似乎是C:\Users\Giulio\AppData\Roaming\Python\Python310\Scripts
。 -
编辑的环境变量:
- 在 Windows 搜索栏中搜索“环境变量”。
- 选择“编辑系统环境变量”。
- 点击“环境变量”。
- 在“系统变量”下,选择“Path”并点击“编辑”。
-
点击“新建”并添加 Pipenv 的安装目录(例如,
C:\Users\Giulio\AppData\Roaming\Python\Python310\Scripts
)。 - 点击“确定”以保存所有更改。
2. 重新启动终端:
关闭并重新打开的终端或命令提示符,以使新的 PATH 环境变量生效。 现在,应该能够直接运行
pipenv
,而无需
python -m
前缀。
3. 虚拟环境和 Scripts 文件夹:
-
Pipenv 默认在
%USERPROFILE%\.virtualenvs
中创建虚拟环境。 -
在 Windows 上,虚拟环境的文件夹中没有
bin
文件夹,而是Scripts
文件夹。 该文件夹包含虚拟环境的可执行文件,包括 Python 解释器。 -
要将的 VS Code 解释器设置为使用 Pipenv 虚拟环境,请选择
Scripts
文件夹内的 Python 解释器。 例如:C:\Users\Giulio\.virtualenvs\project-dhMbrBv2\Scripts\python.exe
其他注意事项:
- 确保在安装 Python 时选中了“添加到 PATH”选项。 这将帮助避免将来出现此类问题。
- 考虑使用 PowerShell 作为的终端,因为它通常在处理 Python 环境方面更可靠。
通过执行这些步骤,应该能够在不使用
python -m
前缀的情况下运行
pipenv
,并且的虚拟环境应该可以按预期工作。