簡體   English   中英

如何從相對路徑導入子模塊?

[英]How to import submodules from relative path?

我的項目中有多個模塊,並指定了一些執行點。 但是,當我嘗試從子模塊導入文件時,它不起作用。

那么,如何指定要從所選執行文件執行的子模塊?

project
--bin
---- executeFile
--modules
---- __init__.py
----fileA.py

executeFile ,我嘗試:

from ..modules.fileA import * 

但得到錯誤:

Traceback (most recent call last):
File "./bin/muexecute", line 10, in <module>
  from ..modules.os import *
SystemError: Parent module '' not loaded, cannot perform relative import

我找到了解決方案。 我認為問題在於使用init .py。 我將可執行腳本的路徑放在包括在內,並且工作正常

PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))

您要導入的所有模塊都應位於PYTHONPATH中。 因此,沒有層次結構。 在您的情況下在我看來,項目的主文件夾(包含所有模型)中缺少__init__.py ,因此executefile不了解您的模塊。

因此,您在定義相對路徑時遇到了麻煩,對嗎? 請嘗試以下操作:

from sys import path
path.append('C:\\realative_path')
from function_file import required_function

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM