Как импортировать модуль из текущей директории не по умолчанию - PullRequest
0 голосов
/ 05 июля 2011

Я использую Python 2.7.Я довольно новичок в языке Python.У меня есть два модуля Python - «Trailcrest.py» и «Glyph.py», оба в одной папке, но не в папке Python27.

Мне нужно импортировать «Trailcrest.py» в «Glyph».py ", но я получаю сообщение, что" такого модуля не существует ".

Кроме того, все средства, которые я использую для импорта модуля, не должны зависеть от твердотельного пути.Эта программа является кроссплатформенной, и путь может быть изменен в зависимости от предпочтений пользователя.Однако эти два модуля всегда будут находиться в одной папке.

Как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 05 июля 2011

Если у вас есть Trailcrest.py и Glyph.py в одной папке, импортировать одно в другое так же просто, как:

import Trailcrest
import Glyph

Если это не работает, похоже, что-то не так с вашей настройкой Python. Возможно, вы захотите проверить, что в sys.path.

import sys
print sys.path
2 голосов
/ 05 июля 2011

Чтобы немного рассказать о Фердинанде Байере, answer , sys.path - это список расположений файлов, которые проверяет импортер модулей по умолчанию. Некоторые, хотя и не все установки python, добавляют текущий путь или каталог модуля __main__ в путь. Чтобы убедиться, что пути относительно данного модуля импортируются в этот модуль, сделайте что-то вроде этого:

import os.path, sys
sys.path.append(os.path.dirname(__file__))

Но что-то подобное никогда не должно превращаться в «производственный» продукт. Вместо этого используйте что-то вроде distutils для установки пакета модуля в каталог python site-packages.

1 голос
/ 16 февраля 2017

Этого также можно добиться, используя переменную окружения PYTHONPATH, которая также влияет на путь поиска Python.Это можно сделать с помощью сценария оболочки, чтобы файлы Python не нуждались в изменении.Если вы хотите импортировать его из текущего рабочего каталога, используйте обозначение . в bash:

export PYTHONPATH=.
python python_prog.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...