2017-04-25 35 views
1

我開發了一個Pycharm的python3軟件包,但當我嘗試在我的測試用例中嘗試使用import模塊時,我遇到了一些令人困惑的行爲。問題似乎與內部封裝模塊的目錄路徑有關。解釋這個問題有點困難,但這是主旨。pycharm 2017.1加載模塊的目錄路徑不一致

所以python的包名是pyugend.現在,當我嘗試導入模塊 - 包裏面 - 名爲Models到測試的情況下,pycharm強迫我爲pyugend.pyugend.Models.所以我需要引用pyugend兩次引用路徑。

但是,當我建立,安裝和導入此包到jupyter筆記本或某個腳本,然後我遇到關於pyugend包錯誤,找不到內部模塊。解決這些錯誤的唯一方法是將模塊內部的路徑更改爲引用,如pyugend.Models

所以基本上,運行的pycharm內部測試中,我必須確保所有的內包裝的進口使用目錄路徑類似from pyugend.pyugend.Models import ...但是,當我想用​​的包pycharm之外,那麼我實際上是進入包,將所有import pyugend.pyugend...參考文獻轉換爲僅參考文獻import pyugend.Models ...

我已經包括了目錄結構的圖片以及的__init__.py. enter image description here

回答

0

圖片您可以在__init.py__進口前加行sys.path.append(os.path.dirname(os.path.abspath(__file__))),然後更改進口from pyugend.Models import Base_model等,以在使用包的任何地方啓用一致的行爲。

+0

嘿@ad22感謝您的想法。我試過了,但還是沒有運氣。 – krishnab