将脚本添加到本地站点包时,没有此类文件或目录

时间:2018-03-14 08:48:50

标签: python-2.7 site-packages

我制作了自己的python模块,我希望能够从任何地方导入。我创建的模块依赖于信息的文本文件来运行。

我运行python -m site --user-site,并创建了该目录,然后将我的模块副本和文本文件放入site-packages目录,重新启动IDLE,然后尝试导入我的模块。我遇到了这个错误:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import MyModule
  File "C:\Users\User\AppData\Roaming\Python\Python27\site-packages\MyModule.py", line 34, in <module>
    with open('TextFile.txt') as p:
IOError: [Errno 2] No such file or directory: 'TextFile.txt'

这就是我的模块:

import blah

...

with open('TextFile.txt') as p:
    p.read()

为什么会发生这种错误?该文件位于同一目录中!

1 个答案:

答案 0 :(得分:0)

事实证明,当您导入site-package时,它将在当前目录中执行,而不是在site-packages目录中执行。

修复此错误的方法是指定所需文件的路径 例如,您将更改MyModule的第34行,以匹配此代码:

with open('C:\Users\User\AppData\Roaming\Python\Python27\site-packages\TextFile.txt') as p:

或者,您可以将当前目录更改为site-packages,或者在当前目录中获取所需文件的副本(在本例中为TextFile.txt)作为快速修复,而无需修改模块。