【发布时间】:2018-03-03 23:44:05
【问题描述】:
我有两个 python 文件:main.py 和imported.py。我想将imported.py导入main.py,但我想访问imported.py文件中main.py的路径。那就是我想访问导入模块的路径。例如:
#main.py
import imp
imported = imp.load_source('imported', "/absolute/path/to/imported.py")
#imported.py
pathToImportingModule=os.path.???
doSomethingWithPath(pathToImportingModule)
【问题讨论】:
-
这个问题好像类似,没有答案:stackoverflow.com/questions/43081310/…
-
这看起来像是 X-Y 问题。你到底想做什么?
-
imported.py 是一个我会经常运行的通用脚本。该脚本将执行与 main.py 所在文件夹相关的任务。例如,它将在 main.py 所在的文件夹中创建一个新文件夹,并在该文件夹中创建文件。我知道我可以简单地使用 os.path.dirname(os.path.abspath(os.path.realpath(file))) 和然后将其传递给imported.py,但我想知道是否有办法自动执行此操作。
-
@user1763510。怎么样:
os.path.abspath(sys.modules['__main__'].__file__)? -
@user1763510 很高兴您找到了解决方案。我希望您不介意我是否提供替代方案:将 main.py 与 import.py 放在一起,不要使用
imp.load_source,不要在 main.py 所在的同一文件夹中执行操作 " ",改为在当前工作目录中执行操作,或者将工作目录作为参数。这样一来,您将拥有更易于维护的逻辑设置。
标签: python import python-import