【问题标题】:Import a python module existing in directory A into another module in directory B将目录 A 中存在的 python 模块导入目录 B 中的另一个模块
【发布时间】:2014-04-09 08:24:55
【问题描述】:

我在目录/home/ssridhar/Python 中有一个名为a.py 的模块。这个模块包含一个函数say

def number_haloes(n):
    halo_param = var2['halo_id'][z1]
    print len(halo_param)

我在目录/home/ssridhar/Python/mean 中有另一个模块b.py

我想在b.py中使用a.py中的def number_haloes

我试过import a,但它显示ImportError: No module named a

我该如何完成这项任务?

【问题讨论】:

  • 相信你可以使用__import__()指定完整路径和文件名
  • @wnnmaw 我应该说 __import__(/home/ssridhar/Python/a.py) ??
  • 我想应该是 a = __import__(r"/home/ssridhar/Python/a.py"),但你应该阅读 the docs 仔细检查
  • 但是你最好在你的名字周围加上os.path.abspath()以避免并发症
  • 这不能解决问题吗:stackoverflow.com/questions/67631/…

标签: python import python-import python-module


【解决方案1】:

您需要将“/home/ssridhar/Python”添加到您的 python 路径。只有这样 Python 才会知道如何加载 a.py。比如你可以试试这个

import sys
sys.path.append('/home/ssridhar/Python')

import a

【讨论】:

  • 当我尝试这个时,它会运行我的 a.py!!我只想在a.py中使用def
  • 除非在 a.py 中有对该函数的调用,否则它不会被执行。你能在 a.py 中发布所有内容吗?
  • 这是一个大程序!但是它是做什么的,它需要两个文件,将它们与一些输入条件进行比较,然后根据条件写出几个文件。函数内部的这个def,只是告诉我每个正在写入的文件中有多少个文件
  • 我的意思是在 a.py 中,如果您调用 number_haloes(n),那么每次导入 a 时都会执行。您可以尝试在 if 条件下添加函数调用,例如 - if __name__ == "__main__": number_haloes(n) read
  • 如果a 被导入另一个模块,这将停止函数的执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
相关资源
最近更新 更多