繁体   English   中英

从另一个脚本调用 Python 函数?

[英]Call Python function from another script?

我想从b.py调用a.py的函数。 我在虚拟环境中运行它。

a.py位于/home/user/admin/ ,所以在b.py我有

import sys
sys.path.append('/home/user/admin')
from a import my_function

但是当我运行它时,我得到

from a import my_function
ImportError: No module named my_function

为什么找不到模块?

由于您是在 virtualenv 中运行脚本,因此您可能需要像这样更改当前工作目录:

import os
filepath = os.path.realpath(__file__)
dirname = os.path.dirname(filepath)
os.chdir(dirname)

from a import my_function
# do stuff

您也可以尝试使用具有以下内容的

  • /home/user/admin/任何文件夹中创建一个__init__.py ,其中包含这样的文件,python 将其识别为包。 该文件可以为空。
  • 接下来,您可以像这样从 b 导入 a:

     from .a import my_function

这是一个相对导入,基本上你要做的是告诉解释器从当前包中导入a由点引用的包。 更多细节在这里

作为旁注,不要对文件当前路径进行硬编码,而是使用以下内容:

import os
sys.path.append(os.path.dirname(__file__)) # in your case would be /home/user/admin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM