2015-11-28 6 views
0

Я создал собственный Python Modules.Импорт собственного модуля Python в Mac

Структура каталогов:

main_dir 
    |--- __init__.py 
    |--- test 
      |--- __init__.py 
      |--- test1.py 
    |--- lib 
      |--- __init__.py 
      |--- lib1.py 

Я импортировал lib1.py внутри test1.py с помощью этого

from lib.lib1 import Lib 

и запуск test1.py с помощью этого

python -m test/test1 

Это работает в Ubuntu и я могу запустить мой питон (test1.py) сценарий успешно, имея проблему в MAC OS X. Он выбрасывает

/usr/bin/python: No module named test/test1 

Любые предложения?

ответ

0

Когда какой-либо модуль импортируется, интерпретатор сначала ищет встроенный модуль с этим именем. Если он не найден, он ищет файл с именем spam.py в списке каталогов, заданных переменной sys.path. Docs

Вы можете установить main_dir в sys.path или добавить путь программно, прежде чем импортировать ваш модуль.

import os 
import sys 

yourpath = os.path.dirname(os.path.abspath(__file__)) #current filepath 

parentpath = os.path.abspath(os.path.join(yourpath, os.pardir)) 
sys.path.append(parentpath) 

from lib.lib1 import Lib 
+0

Я использовал программный путь программно без успеха. Внутри ** yourpath <Добавить путь_upto_main_dir> **. Правильно ли это? – iNikkz

+0

@iNikkz - 'yourpath = <путь-upto-test-folder>'. 'yourpath' инициализируется путём к каталогу текущего файла (т.е.' test1.py') – JRodDynamite

+0

@iNikkz - Если вы собираетесь жестко закодировать путь (который я не рекомендую делать), просто установите переменной "parentpath" на путь 'main_dir'. – JRodDynamite

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