我刚刚开始使用Mark Luts使用学习Python 学习Python。在他的书中,他提供了一个通过Windows shell调用的简单脚本示例。在示例中,他调用如下:
C:\code> python script1.py
我已经离开并修改了我的机器上的环境变量,以便我可以调用
C:\User\Example> python
打开翻译,我也可以打电话给
C:\User\Example> script1
运行我已编写并放在所需目录中的脚本。我的问题是我不能打电话
C:\User\Example> python script1.py
在我的命令行中,就像他在书中所做的那样。他提到了有关PYTHONPATH环境变量的一些内容,但是,这个变量并不存在于我的机器上。我只有'路径',' TEMP'和' TMP'。特别是,当我尝试拨打这样的电话时,我收到了错误
python: can't open file 'script1.py': [Errno 2] No such file or directory
为了让这种命令在命令行上正常工作,我该怎么做?
答案 0 :(得分:2)
从书中(第44页,第4版):
最后,如果脚本位于与您工作的目录不同的目录中,请记住提供脚本的完整路径。
对于您的情况,这意味着使用
C:\User\Example> python C:\User\Example\my_scripts\script1.py
您可以编写一个批处理文件,在预定义的目录中查找脚本:
@echo off
setlocal
PATH=C:\User\Example\Python36;%PATH%
SCRIPT_DIR=C:\User\Example\my_scripts
python %SCRIPT_DIR\%*
答案 1 :(得分:0)
您正在python
的上下文中调用C:\User\Example
,并向其传递要通过解释器(script1.py
)运行的文件的名称。很明显,PATH
变量已正确设置,因此您可以从计算机上的任何位置调用python
,因为我们可以看到它正在运行但实际上无法找到您的脚本。
但是,您在评论中说明您的脚本实际位于C:\User\Example\my_scripts
。换句话说,您正在传递python
一个不存在的文件名! (至少从C:\User\Example
的意见。)
您需要位于脚本目录中,以便python
可执行文件能够找到它。
或者,您可以运行python命令并为其提供有关脚本位置的更多信息。例如,如果您在python .\my_scripts\script1.py
的竞赛中运行,并且您的脚本位于C:\User\Example
,则可以运行C:\User\Example\my_scripts
。