2014-11-07 3 views
1

Я пытаюсь импортировать модуль в свой скрипт python, и я не могу заставить его работать. Итак, у меня есть мой скрипт python: /home/user/pythonscript/oneDir/onescript.py И я хотел бы использовать скрипт, который является каталогом выше в иерархии: /home/user/pythonscript/common.py So Я сделал следующее в верхней части моего onescript.py:Функция модуля Python не определена

import sys 
sys.path.insert(1,'/home/user/pythonscript') 
import common 

в моем common.py файл, у меня есть функция onecConnect, и когда я пытаюсь запустить onescript.py, который использует onecConnect функцию, я получаю следующая ошибка: nameError: name 'onecConnect' не определен

Любой может видеть, что я делаю неправильно или забыл сделать? Спасибо

+0

Что такое трассировка ошибки? –

+0

Вы выполняете 'onecConnect()' или 'common.onecConnect()'? – Kevin

+0

В консоли единственная вещь, которую я вижу, - Traceback (самый последний вызов recet): Файл «onescript.py», строка 25, в s = oneConnect() NameError: имя 'onecConnect' не определен Я звоню onecConnect , а не common.onecConnect (я попробовал и получил кучу ошибок) –

ответ

1

Убедитесь, что во всех каталогах есть __init__.py, перейдите к /home/user/pythonscript и запустите код Python. Итак:

python oneDir/onescript.py 

В onescript.py вы можете сделать:

from common import onecConnect 

Правила:

  • Всегда запускать скрипт Python из максимально возможного каталога (не самый глубокий в проект) ,
  • Всегда иметь полные линии импорта, без относительного импорта.

Это устраняет проблемы.

+0

действительно ли мне нужно импортировать каждую функцию, которую я хочу использовать из 'common'? Я, хотя я мог просто импортировать общий, а затем использовать все функции, которые в нем?! –

+0

@MelodieGauthier: да, это возможно тоже. Это зависит от ваших предпочтений и количества функций, которые вам нужны. –

+0

_ «Да, это тоже возможно». _. Хорошо, так ... Как вы это делаете? – Kevin

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