Нет такого файла или каталога при добавлении скрипта в локальные пакеты сайта
Я сделал свой собственный модуль 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 ответ
Оказывается, когда вы импортируете сайт-пакет, он выполняется в текущем каталоге, а не в site-packages
каталог.
Чтобы исправить эту ошибку, нужно указать путь к нужному файлу.
Например, вы должны изменить строку 34 MyModule, чтобы соответствовать этому коду:
with open('C:\Users\User\AppData\Roaming\Python\Python27\site-packages\TextFile.txt') as p:
В качестве альтернативы, вы можете изменить текущий каталог на site-packages
или получите копию нужного файла (в данном случае TextFile.txt
) в текущем каталоге в качестве быстрого исправления без изменения вашего модуля.