2016-05-09 6 views
2

У меня есть это хранилище структуры:не может импортировать модуль питона из пакета питона

py_files_and_packages/ # normal folder 
    package/ 
     module1.py # contains a class 
     module2.py 

__init__.py файл этого пакета содержит только __author__='my name'

Проблема:
Я пытаюсь импортировать класс от module1.py до model2.py. Когда я использую
from package.model1 import model1
и запускаем скрипт (model2.py) в PyCharm, он работает. Однако, когда я запускаю его из командной строки, он не находит пакет. Сообщение об ошибке: ImportError: No module named 'my package's name'.

Я попробовал много трюков, которые я нашел в Интернете, такие как (https://stackoverflow.com/a/22777011/2804070)but это не сработало.
Я использую питон-3.5.1 (устанавливается локально), PyCharm 5.0.4 Community Edition, OS Debian хриплого

+0

'от .module1 импорта Module1Class1' – user3159253

+0

внутри module2.py – user3159253

ответ

1

problom что питон не может найти свой пакет, потому что это не в пути поиска

в model2.py, попробуйте добавить следующее перед.

import sys 
sys.path.append('/path/to/py_files_and_packages') 

так это выглядит следующим образом:.

import sys 
sys.path.append('/path/to/py_files_and_packages') 

from package.model1 import model1 

# your code here 
+0

спасибо .. это работает во всех моих тестовых случаях, однако после 'import' мне пришлось написать имя класса :) – user2804070

+0

рад, что он работает :-) –

0

Попробуйте это в model2.py:

from module1 import your_class_name 
+1

мой' __init __ py' находится в директории 'пакета /'. однако, это сработало, спасибо. Но инспектор PyCharm в этом случае говорит, что он не может ни ссылаться на модуль, ни класс внутри этого модуля. Но это интересно работает :) – user2804070

+0

@ user2804070, это здорово. – SparkAndShine

Смежные вопросы