命令python:命令行和批处理脚本中的不同含义

时间:2016-05-26 07:44:50

标签: python python-2.7 python-3.x batch-file command-line

我已经使用Python3安装了Anaconda。然后,我另外创建了一个Python2的虚拟环境。计算机上没有其他的蟒蛇。我的问题:

如果我运行命令

python C:\Path\To\myScript.py arg1 arg2

在CMD中,Python 3.4用于执行myScript.py(按预期/期望)。但!如果我创建一个包含上层命令的.bat文件,则使用Python 2.7。 (我使用print(sys.version)中的myScript.py命令查看版本。

我该如何解决?

3 个答案:

答案 0 :(得分:2)

尝试在批处理脚本中指定Python3的完整路径(即。/ path / to / Python3)可执行文件。它可能默认为系统python。

如果您使用的是virtualenv,并且您可能应该这样,那么在venv / bin / python(或类似的Windows下)中有一个单独的python可执行文件 - 通过绝对路径使用这个特定的可执行文件通常是确保正在使用正确的python环境,尤其是当脚本自动运行或由其他用户运行时。这完全是设计的,virtualenv经常以这种方式使用。

答案 1 :(得分:0)

因为您正在使用Anaconda,所以在python命令之前添加一行source deactivate会显式停用任何virtualenv

编辑:对于windows cmd提示符,它可能只是deactivate

答案 2 :(得分:0)

您可以通过更改路径变量的值来更改python的默认版本,这可以通过以下回答How to update PATH variable permanently from cmd? Windows

来完成

或者您可以暂时更改要使用的版本,然后按照How to run different python versions in cmd

进行操作

我希望我的回答很有帮助。