2012-11-20 69 views
2

我是一名Python初学者,而且我在从CMD运行Python时遇到问题。我已经将Python安装目录添加为PATH变量(; C:\ Python27)。我能够从CMD运行Python解释器,但是当我从CMD发出像“python file.py命令”这样的命令时,它会返回“Error2,Python无法打开,没有这样的文件/目录”。在CMD中运行Python不起作用

所以我要做的是“cd C:\ Folder \ Folder2 \ My_Python_Files”,然后每次输入“file.py命令”。有没有更快或更有效的方式来做到这一点?我目前正在运行Python2.7在Windows 8

+2

包含你的'file.py'的文件夹添加到'PYTHONPATH'环境变量。 –

+1

当你键入'python file.py'时,'file.py'和当前目录是什么?将Python目录添加到路径中只是使Python本身可以在全局访问;它不会使所有用Python编写的程序自动访问。您仍然必须与特定的Python文件位于相同的目录中才能运行它(除非您执行更多的路径操作)。 – BrenBarn

+0

Windows命令如何知道文件的位置而不指定绝对路径? – scape

回答

3

当您运行python <script>时,它需要一个提供脚本的实际路径。你不能单独指定“file.py”,除非它在你的当前目录中。

在Windows中,这里有两个步骤,你可以采取:

  1. 助理与蟒蛇.py文件。然后,你可以不python命令直接运行它们:/path/to/file.py
    ( - >属性 - 右键单击​​一个的.py>变化与python.exe关联)

  2. 进一步的步骤:将位置添加到您的PATH环境,将包含您的Python脚本。从那里,你可以做file.py,它会在你的搜索路径中找到。
    因此,您可以将C:\Folder\Folder2\My_Python_Files添加到您的PATH,那就是您可以存储可执行文件的Python脚本的地方。

您也可以一个shell会话中临时设置PATH变量:

SET PATH=%PATH%;C:\path\to\project 
+0

我遵循了步骤#2并将C:\ Folder \ Folder2 \ My_Python_Files添加到我的PATH变量中,并且它工作正常。那么它需要为使用CMD访问的每个脚本设置路径?谢谢,你一直很有帮助:) –

+0

通常,当你想让命令行脚本可用于整个系统时,你可以将它放在系统PATH位置。这与'POSIX'一样。但在'POSIX'中我们有符号链接,这意味着您可以简单地将其链接到系统路径位置。这里最好的选择就是在准备好的时候将其复制到系统路径中,在开发过程中,您应该直接使用路径进行操作。或者,像你说的那样......将它们添加到你的道路上。您可以通过'SET PATH =%PATH%; C:\ path \ to \ project'临时设置PATH – jdi

2

就像PATH环境变量中列出了系统的多个目录中搜索可执行文件,该PYTHONPATH做同样的Python搜索.py文件。如果您希望某个文件夹中的脚本可以全局访问(即您可以按照您的需要按名称引用它们,或者可以从其他脚本导入它们),请将该文件夹添加到PYTHONPATH(如果该文件夹不存在,请创建该文件夹)。

注意,命令调用的脚本是在你的PYTHONPATH是:

python -m file [<script arguments>] 

(即使用-m选项,可将它作为一个module,并且不使用扩展.py

这里的an article更详细地解释了Python如何找到它的源文件(无论是在命令行还是通过import)。

请注意,您还可以使用它的完整路径是指该脚本:

python C:\Folder\Folder2\My_Python_Files\file.py command 

但是通过这样做,在同一个文件夹中的其他文件,该脚本可以通过import引用可能无法正常工作(因为Python不知道在哪里搜索它们)。

+1

这是很好的信息,但它实际上与PYTHONPATH无关。这意味着进口。 OP正在尝试将它们作为入口点,这意味着它必须处理'PATH'。 – jdi

+0

你说得对,我没注意到!但是我相信如果'file.py'在PYTHONPATH中,你可以使用'python -m file'(不带'.py')来访问它,这是否正确?我会检查并更新答案。 – mgibsonbr

+0

我已经创建了PYTHONPATH变量并放在我的“file.py”所在的目录中。当我尝试访问CMD时,它仍然返回相同的错误,“没有这样的文件存在” –

0

       除非项目的文件夹位于PATH中,否则只有在项目文件夹内时才能调用该文件。除非需要,否则不要为项目创建PATH;这是没有必要的。

     仅横切文件目录并在目录内运行命令。那可行。

       如果项目将被其他项目/文件使用,则可以使用PYTHONPATH设置目录,以便其他项目可以成功访问它。

     希望有所帮助。

+0

感谢您的帮助,我能够通过将其添加到PATH来运行它。 –

+0

如果所有答案都有帮助,请将它们全部加满,并选择其中一个作为接受的答案;这有助于你和后来可能会遇到类似问题的其他人。 –

+0

由于我帐户的新颖性,我仍然无法投票回答问题。将尽快这样做。谢谢! –