Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2011 16:07:02

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

файлы .pth

Привет всем, изучаю Лутца в главе о модулях, он описывает создание пользовательских файлов с расширением .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 файлы - моветон.” я понимаю но раз уже споткнулась хочется решить задачу. Что я делаю не так?



Офлайн

#2 Окт. 2, 2011 17:53:14

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

файлы .pth

Все правильно
Python26\Lib\site-packages\some.pth
он добавляет поиск в папке указнной в файле.

Как выглядит то, что оно у вас не работает?



Офлайн

#3 Окт. 2, 2011 21:00:27

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

файлы .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()
Все ок!



Офлайн

#4 Окт. 2, 2011 22:43:48

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

файлы .pth

Fibio
C:\\Python26\\my_mod
Слеши одинарные должны быть.

Офлайн

#5 Окт. 2, 2011 22:44:22

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

файлы .pth

поменяйте на C:\Python26\my_mod\
Кстати может my_mod\ лишнее. Давно это делал, сейчас не помню, но получилось с первого раза.



Офлайн

#6 Окт. 2, 2011 23:39:27

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

файлы .pth

слеши одинарные - не помогает, да и врядли, если сделать принт sys.path там тоже слеши везде двойные, это одинарный слеш в сырой троке.
C:\Python26\my_mod\ - тоже не помогло, my_mod там должно быть т.к. название файла .pth не имеет значения, при импорти по идее просматриваются все файлы с таким расширением, а my_mod в строке C:\Python26\my_mod - это название каталога. Если кто может сталкивался есть ли еще варианты?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version