簡體   English   中英

從另一個目錄導入 python 模塊失敗

[英]imported python module from another directory fails

我已經使用sys.path.insert從 Linux 中的另一個目錄導入了 python 模塊,但是當我運行該模塊時它失敗了。 由於導入的模塊試圖打開該模塊本地的文件。 請讓我知道如何解決這個問題。

users/adr/release/invoke.py  #this one fails with can’t open file ./config.ini

import sys

sys.path.insert(0, ‘/user/cdw/audit/’)

import audit_main

原始模塊文件所在的路徑。

/user/cdw/audit/audit_main.py  # this module opens config.ini file to read pplication credentials.
/user/cdw/audit/config.ini

/user/cdw/audit/__ini__.py

當 python 加載模塊時,它會將元數據添加到模塊可以使用的全局命名空間。 __file__是 its.py 文件的文件名 - 當這樣的名稱有意義時。 您可以使用它來獲取您的配置文件

import os
config_filename = os.path.join(os.path.dirname(__file__), "config.ini")

除非你不能。 如果這是一個 C 擴展文件,或者該文件位於 zip 或 egg 或 pyinstaller 包或 exe 等其他包裝中,則可能無法正常工作。 我假設用戶可編輯的 ini 文件可能需要位於模塊目錄以外的某個位置。 如果您將 this.py 作為可安裝 package 的一部分,它可能最終位於用戶無法編輯的系統目錄中。 這對這個項目來說可能不是問題,只是列出一些考慮因素。

暫無
暫無

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

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