Форум сайта python.su
Привет всем, изучаю Лутца в главе о модулях, он описывает создание пользовательских файлов с расширением .pth как один из способов добавления в
sys.path путей для поиска модуле при импорте. Хотелось бы применить этот прием но ничего не получается. Работаю в винде, в C:\Python26 создаю каталог my_mod, создаю файл my_mod.pth c записью C:\\Python26\\my_mod куда мне этот файл положить??? пробовала и в C:\Python26 - это “домашний каталог программы” (название из Лутца), т.е. первый каталог куда “лезет” поиск, и в C:\Python26\Lib\site-packages не работаит :(, также изучила содержание других файлов .pth в site-packages там only названия папок, без пути. Почитала тут: http://asvetlov.blogspot.com/2010/05/2.html - “Подчеркну, еще раз, что создавать самому .pth файлы - моветон.” я понимаю но раз уже споткнулась хочется решить задачу. Что я делаю не так?
Офлайн
Все правильно
Python26\Lib\site-packages\some.pth
он добавляет поиск в папке указнной в файле.
Как выглядит то, что оно у вас не работает?
Офлайн
в C:\Python26\Lib\site-packages лежит файл my_mod.pth с записью: C:\\Python26\\my_mod
в директории C:\Python26\my_mod находится файл a.py
так:
def imp1():
import a
a.spam('first')
imp1()
ImportError: No module named a
так:
def imp1():
import sys
sys.path.append('C:\\Python26\\my_mod')
import a
a.spam('first')
imp1()
Все ок!
Офлайн
FibioСлеши одинарные должны быть.
C:\\Python26\\my_mod
Офлайн
поменяйте на C:\Python26\my_mod\
Кстати может my_mod\ лишнее. Давно это делал, сейчас не помню, но получилось с первого раза.
Офлайн
слеши одинарные - не помогает, да и врядли, если сделать принт sys.path там тоже слеши везде двойные, это одинарный слеш в сырой троке.
C:\Python26\my_mod\ - тоже не помогло, my_mod там должно быть т.к. название файла .pth не имеет значения, при импорти по идее просматриваются все файлы с таким расширением, а my_mod в строке C:\Python26\my_mod - это название каталога. Если кто может сталкивался есть ли еще варианты?
Офлайн