我已将路径环境变量设置为包括python解释器以及“ python_scripts”文件夹。我可以从机器上的任何位置分别调用python解释器或位于“ python_scripts”文件夹中的任何.py文件,如下所示:
C:\> python.exe
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64
bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
或
C:\> test_code.py
,它们都可以正常工作。但是,当我调用python解释器后跟脚本名称时:
C:\> python.exe test_code.py
除非我位于“ python_scripts”文件夹中,否则它返回以下错误:
python: can't open file 'test_code.py': [Errno 2] No such file or directory
为什么会这样?
答案 0 :(得分:3)
如果使用C:\> python.exe test_code.py
,它将在当前目录中查找test_code.py
。如果将参数传递给python.exe
,则该参数必须是存在的文件的有效绝对路径或相对路径。
答案 1 :(得分:2)
这意味着该文件位于Windows %PATH%
变量中。当您执行python.exe
时,它会出现在各种位置。例如,如果您的PATH
看起来像:C:\;"C:\Program Files\Python 3\";C:\Users\user\python_scripts
,它将尝试C:\python.exe
,然后尝试C:\Program Files\Python 3\python.exe
并找到Python。
执行test_code.py
时,它会以C:\Users\user\python_scripts\test_code.py
的形式找到(例如)。
调用python.exe
时,它只会读取文件名,而不会尝试解析路径。
Python使用不同的导入路径,可以将其视为sys.path
。
您可以使用.pth
中的python\Lib\site-packages
文件来扩展它。
例如,如果您添加具有以下内容的user_pth.pth
文件:
C:\Users\user\python_scripts\
然后您可以从任何文件进行import test_code
。
因此,您可以通过将代码作为模块运行来调用pythons导入器:
python.exe -m test_code
答案 2 :(得分:0)
您应为python.exe提供脚本python.exe的完整路径。 c:\ test_code.py
答案 3 :(得分:0)