重命名Python3.7可执行文件而不破坏文件
我已将重命名Python3.7可执行文件而不破坏文件,python,windows,python-3.7,Python,Windows,Python 3.7,我已将python.exe重命名为python37.exe,以避免与其他版本冲突。它适用于运行python,但如果运行pip37.exe(位于/Scripts中),则会出现以下错误: Fatal error in launcher: Unable to create process using '"c:\python37-32\python.exe" "C:\Python37-32\Scripts\pip37.exe" 有没有办法让python.exe改名为python37.exe,但让所有
python.exe
重命名为python37.exe
,以避免与其他版本冲突。它适用于运行python,但如果运行pip37.exe
(位于/Scripts中),则会出现以下错误:
Fatal error in launcher: Unable to create process using '"c:\python37-32\python.exe" "C:\Python37-32\Scripts\pip37.exe"
有没有办法让
python.exe
改名为python37.exe
,但让所有python工具都能工作?这听起来是个坏主意
有一些工具可以帮助您准确地管理这类事情。其中最好的imho是pyenv
:
安装起来很简单。这需要一点时间去适应——让你的头脑围绕着虚拟环境——但它最终让你的工作变得更加容易
例如,在我的系统上,我有以下python版本:
pyenv versions
system
2.7.10
* 3.5.6 (set by /Users/.pyenv/version)
3.5.6/envs/core4
3.6.4
3.6.4/envs/core5
core4
core5
带星号的当前版本是全局版本,它将从任何默认shell中使用。例如,我可以使用pyenv global 3.6.4
来改变这一点。我还可以创建虚拟环境。例如,core4和core5是我为特定项目创建的虚拟环境。其中每一个都有各自不同的库,通过pip install
和不同的python版本安装。您可以为给定的shell会话激活VirtualNV,例如,pyenv activate core5
如果你在想“这到底和Windows有什么关系”,看看这里:这听起来是个坏主意 有一些工具可以帮助您准确地管理这类事情。其中最好的imho是
pyenv
:
安装起来很简单。这需要一点时间去适应——让你的头脑围绕着虚拟环境——但它最终让你的工作变得更加容易
例如,在我的系统上,我有以下python版本:
pyenv versions
system
2.7.10
* 3.5.6 (set by /Users/.pyenv/version)
3.5.6/envs/core4
3.6.4
3.6.4/envs/core5
core4
core5
带星号的当前版本是全局版本,它将从任何默认shell中使用。例如,我可以使用pyenv global 3.6.4
来改变这一点。我还可以创建虚拟环境。例如,core4和core5是我为特定项目创建的虚拟环境。其中每一个都有各自不同的库,通过pip install
和不同的python版本安装。您可以为给定的shell会话激活VirtualNV,例如,pyenv activate core5
如果你在想“这到底和Windows有什么关系”,看看这里:这里:在Windows Python上安装。您不需要虚拟环境或重命名技巧
py.exe
位于标准Windows路径中,具有用于选择要使用的Python版本的命令行开关,并允许使用“shebangs”指定要为脚本运行的Python版本:
py script.py # Run the latest Python installed (or specified by PY_PYTHON environment variable).
py -2 script.py # Run the latest Python 2 version installed.
py -3 script.py # Run the latest Python 3 version installed.
py -2.7 script.py # Run the specific Python version.
py -2.7-32 script.py # Run the 32-bit specific Python version.
py -0 # List Python versions installed.
脚本可以使用类似于Linux的Shebang:
#!python2
#!python3
#!python2.7
#!python2.7-32
要使用特定版本运行pip,请执行以下操作:
py -2.7 -m pip install ...
如果您仍然需要具有特定Python版本的虚拟环境,则可以指定版本(例如-3
)并使用:
创建虚拟环境
/脚本/激活#激活该环境
激活会将虚拟环境添加到路径中,因此
python
(而不是py
)将在该环境中运行。该环境中的Scripts
目录也将添加到路径中,因此可以直接运行pip
在该环境中安装软件包。在Windows Python上安装。您不需要虚拟环境或重命名技巧py.exe
位于标准Windows路径中,具有用于选择要使用的Python版本的命令行开关,并允许使用“shebangs”指定要为脚本运行的Python版本:
py script.py # Run the latest Python installed (or specified by PY_PYTHON environment variable).
py -2 script.py # Run the latest Python 2 version installed.
py -3 script.py # Run the latest Python 3 version installed.
py -2.7 script.py # Run the specific Python version.
py -2.7-32 script.py # Run the 32-bit specific Python version.
py -0 # List Python versions installed.
脚本可以使用类似于Linux的Shebang:
#!python2
#!python3
#!python2.7
#!python2.7-32
要使用特定版本运行pip,请执行以下操作:
py -2.7 -m pip install ...
如果您仍然需要具有特定Python版本的虚拟环境,则可以指定版本(例如-3
)并使用:
创建虚拟环境
/脚本/激活#激活该环境
激活会将虚拟环境添加到路径中,因此
python
(而不是py
)将在该环境中运行。该环境中的Scripts
目录也将添加到路径中,因此pip
也可以直接运行,以便在该环境中安装软件包。切换到linux,修复起来很简单;)。在Python3.7中,pip是标准库的一部分,因此建议运行pip的方法是python-mpip
。我建议您这样做,而不是使用pip37.exe
。不管怎样,pip
/pip37.exe
可执行文件几乎就是该命令的包装。您可以使用可执行文件旁边的符号链接(例如python37.exe->python.exe)并使用符号链接运行特定版本。这对嵌入脚本(例如,嵌入在pip37.exe中)中的完全限定路径没有影响。但是,它仍然需要管理PATH
中的安装顺序,以便在命令提示符下通过非限定的python
设置运行哪个版本。通过激活一个由Python3的venv模块创建的虚拟环境,可以很容易地解决这个问题。切换到linux,修复起来很简单;)。在Python3.7中,pip是标准库的一部分,因此建议运行pip的方法是python-mpip
。我建议您这样做,而不是使用pip37.exe
。不管怎样,pip
/pip37.exe
可执行文件几乎就是该命令的包装。您可以使用可执行文件旁边的符号链接(例如python37.exe->python.exe)并使用符号链接运行特定版本。这对嵌入脚本(例如,嵌入在pip37.exe中)中的完全限定路径没有影响。但是,它仍然需要管理PATH
中的安装顺序,以便在命令提示符下通过非限定的python
设置运行哪个版本