2015-08-25 4 views
-1

Я написал функцию и сохранил ее в другом каталоге. Если я хочу вызвать функцию в скрипте, в котором я сейчас. Как сообщить Python местоположение этого каталога? Я прочитал статью вроде этого http://tinyurl.com/q2mmlh3 , но я действительно не понимаю, как решить мою проблему. Пожалуйста, объясните мне, как импортировать morbo_function_lib.py в euler_04.pyКак импортировать функцию, которую я написал в python

расположение сценария я в настоящее время работает на /home/morbo/document/python/euler/euler_04.py ниже является местонахождение функцию, которую я хочу импортировать из /home/morbo/document/python/python_script/morbo_function_lib.py

Я запускаю Python 2.X на Ubuntu 14.04. И я использую Geany для написания кода Python.

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

Большое спасибо за время, проведенное

+1

возможно дубликат [Постоянно добавить каталог PYTHONPATH] (HTTP: //stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath) – msw

ответ

0

По умолчанию используются только текущий каталог и путь библиотеки Python (https://docs.python.org/2/tutorial/modules.html#the-module-search-path); в любом случае, вы можете использовать «чертенок» (https://docs.python.org/2/library/imp.html):

import imp 

foo = imp.load_source('module.name', '/home/morbo/document/python/python_script/morbo_function_lib.py') 
+0

исправьте меня, если я ошибаюсь. import imp - это всего лишь модуль, встроенный в Python для импорта указанного пользователем модуля. Это похоже на одноразовую функцию? –

+0

Если я хочу навсегда определить каталог для Python, чтобы искать скрипт с этого момента, когда я вызываю import.Do мне нужно внести изменения в файл PYTHONPATH? указать каталог для Python для поиска? –

+0

Это ужасный способ сделать импорт, вроде как начать свой автомобиль каждый день с ломом. См. Ссылку, которую я оставил в качестве комментария к вашему вопросу http://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath – msw

1

Общий используемый подход для этого с хорошим объяснением предусмотрены здесь How to import a module given the full path?

+0

'module.name' - это просто имя файла, содержащее функцию, которую я бы назвал, не так ли? –

+1

справа, еще один пример для этого можно найти http://stackoverflow.com/questions/4970235/importing-a-module-dynamically-using-imp –

+0

Я успешно загрузил весь модуль, но, похоже, это неправильное решение к моей проблеме. Мне нужно вызвать функцию из этого модуля, а не весь модуль. тем не менее, большое вам спасибо за вашу помощь. Пойду прочитаю некоторую информацию о том, как манипулировать PYTHONPATH. большое спасибо!! –