【问题标题】:How to import a function I wrote in python如何导入我在python中编写的函数
【发布时间】:2015-08-25 21:27:26
【问题描述】:

我编写了一个函数并将其保存在不同的目录中。 如果我想在我当前所在的脚本中调用该函数。如何告诉 Python 这个目录的位置?我读过一些像这样的文章http://tinyurl.com/q2mmlh3 但我真的不明白如何解决我的问题。 请向我解释如何将 morbo_function_lib.py 导入 euler_04.py

我当前工作的脚本的位置 /home/morbo/document/python/euler/euler_04.py 下面是我希望从中导入的函数的位置 /home/morbo/document/python/python_script/morbo_function_lib.py

我在 Ubuntu 14.04 上运行 Python 2.X。我正在使用 Geany 编写 Python 代码。

我必须道歉,因为这似乎是论坛上重复的问题,但由于我的知识有限。我似乎找不到问题的正确答案。

非常感谢您花费的时间

【问题讨论】:

标签: python python-2.7 import


【解决方案1】:

这里提供了用于此的常用方法,并提供了很好的解释 How to import a module given the full path?

【讨论】:

  • 'module.name' 只是包含我要调用的函数的文件名,对吧?
  • 对,再举一个例子,你可以参考stackoverflow.com/questions/4970235/…
  • 我成功加载了整个模块,但这似乎是我的问题的错误解决方案。我需要从该模块调用函数,而不是整个模块。尽管如此,还是非常感谢您的帮助。我会去阅读一些关于操纵 PYTHONPATH 的信息。非常感谢!!
  • 如果你成功导入了模块,那么你可以调用如下所示的函数 foo = imp.load_source('module.name', 'path') foo.funtion()
【解决方案2】:

默认只使用当前目录和 Python 库路径(https://docs.python.org/2/tutorial/modules.html#the-module-search-path);无论如何,你可以使用“imp”(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')

【讨论】:

  • 如果我错了,请纠正我。 import imp 只是 Python 内置的一个模块,用于导入用户指定的模块。这就像一次性使用功能?
  • 如果我想为 Python 永久定义一个目录,以便从现在开始在调用 import 时查找脚本。是否必须更改 PYTHONPATH 文件?指定Python要查找的目录?
  • 把 "export PYTHONPATH="${PYTHONPATH}:/home/morbo/document/python/python_script/" " 在你的 ~/.bashrc (如果你使用 bash - 检查文件 /etc/passwd为此)
  • 顺便说一句,我的答案有 2 个链接,第一个是指路径,第二个是 imp。哪个是首选是您的选择,具体取决于您的上下文。
  • 是的,如果 'bash' 是 /etc/passwd 文件中用户登录行中指定的 shell,则使用 bash,然后注销并登录以轻松重新加载参数(您可以键入“env " 命令,以检查 PYTHONPAH 是否包含您的自定义目录)。之后,将此问题标记为已回答(如果有效);)
猜你喜欢
  • 2019-04-26
  • 2015-04-23
  • 2022-12-08
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多