Включение файлов

 
0
 
Python
ava
Torsten | 11.11.2011, 14:43
Как включить один файл python в другой ?
Вот у меня есть некоторые функции общего назначения, я их вынес в отдельный файл Y.py, расположил его в определенном каталоге X.
Что мне нужно написать в другом файле Z.py, чтобы при выполнении он нашел файл Y.py в каталоге X и смог бы выполнить функции описанные в нем ?

Kommentare (5)
ava
pythonwin | 11.11.2011, 14:15 #

from X import Y

Y.my_func()


Torsten, прочитайте, пожалуйста, книгу Язык программирования Python
ava
Torsten | 11.11.2011, 15:59 #
Это я посмотрел 1ым делом, ответа на свой вопрос не нашел.
Ваш пример у меня не заработал.

python Z.py
Traceback (most recent call last):
File "Z.py", line 1, in <module>
from X import Y
ImportError: No module named X


Прилагаю маленький пример, иллюстрирующий проблему (test.tar).
ava
cutwater | 11.11.2011, 21:33 #
Torsten, Почитайте же документацию.
X в данном случае просто каталог, чтобы он стал пакетом и можно было из него импортировать другие модули,
необходимо в каталоге X создать файл __init__.py

А вообще стыдно должно быть товарищи, народ совсем обленился, учебники читать разучился.
http://docs.python.org/tutorial/modules.html
Вот там все что нужно.

http://docs.python.org/tutorial/index.html
Прочитать от корки до корки.
ava
Torsten | 14.11.2011, 11:14 #
А правильный ответ такой, надо добавлять в путь поиска текущий каталог.


import sys
sys.path.append('./X')
import Y
Y.testY()
ava
cutwater | 14.11.2011, 19:17 #
Цитата (Torsten @ 14.11.2011, 10:14 findReferencedText)
А правильный ответ такой, надо добавлять в путь поиска текущий каталог.


Это неправильный ответ. Тем более он не соответствует тому, что Вы описали ранее.

import Y

и

from X import Y

отличаются, Вы не находите?

Более того, ситуация когда необходимо в коде править sys.path крайне редка и обычно ее вообще не должно быть кроме тех случаев, когда вы точно знаете зачем Вы это делаете.

Кроме того, если вы так сделаете, внезапно наткнетесь на ситуацию, если вдруг текущий каталог из которого будет запускаться ваш код не соответствует тому, где лежит файл (читать необходимо прописывать абсолютные пути).
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden