1

我的桌面上有两个文件:

sotest.py

print 'Hello world'

sotest2.py

foo = open ('sotest.py', 'r')

我正在使用 Notepad++ 运行 Python,如下所示(从Use IDLE to launch script using the full file path):

C:\Program Files (x86)\Python27\Lib\idlelib\idle.bat -r "$(FULL_CURRENT_PATH)"

运行 sotest2.py 会返回以下内容:

Traceback (most recent call last):
  File "C:\Users\doncherry\Desktop\sotest2.py", line 7, in <module>
    foo = open ('sotest.py', 'r')
IOError: [Errno 2] No such file or directory: 'sotest.py'

当从 Pyhton 的 IDLE 中运行相同的文件时,它运行时不会出错。如果我将 sotest2.py 更改为以下内容,则它可以在 Notepad++ 中正常工作。

import sotest

我需要更改配置的哪一部分才能使打开工作?我更愿意更改 Notepad++ 中的一些设置,而不是向我的每个 Python 文件添加代码。

4

1 回答 1

0

import sotest之所以有效,是因为它会在其中搜索sotest模块,sys.path并且如果您作为脚本运行,则会将sotest2.py's 目录添加到其中。如果并且位于不同的目录中,那么除非有其他东西将' 目录放入 pythonpath 中,否则里面会失败。sys.pathsotest2.pysotest2.pysotest.pysotest.pyimport sotestsotest2.py

要将 sotest2.py 中的 sotest.py 作为文件打开,您可以指定其绝对路径。假设它们在同一个目录中,您可以自动找到它:

# in sotest2.py:
import os

scriptdir = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(scriptdir, 'sotest.py')
with open(path) as sotest_file:
     text = sotest_file.read()
于 2012-11-10T09:19:53.837 回答