簡體   English   中英

如何使用PYTHONPATH在Python中導入整個文件夾

[英]How to use PYTHONPATH to import the whole folder in Python

我是python的新手,正在嘗試將項目文件夾添加到PYTHONPATH。 我創建了一個.pth文件,並將該文件的根路徑添加到我的site-packages文件夾中。 但是,當我嘗試在此文件夾中導入.py文件時,只能導入位於根文件夾下的文件(例如'/ sample'),但無法導入/ sample文件夾下的那些子文件夾(對於例如/ sample / 01)。 所以我的問題是,什么文件以及如何更改它以使包括所有子文件夾在內的整個文件夾都可以導入。

在最壞的情況下,我想到的是在站點包中記下.pth文件中的所有文件夾名稱。 但是我只是相信Python將提供更有效的方法來實現這一目標。

我從來沒有機會使用過.pth文件。 我更喜歡兩種方法:

  • 使用運行env pythonshebang ,因此它使用路徑上的第一個python ,即:

#!/usr/bin/env python

  • 使用virtualenv可以保持不同的環境,並將所有給定程序/程序集的必要庫組合在一起。 這具有額外的好處,即可以將需求文件(來自pip凍結輸出)存儲在源代碼控制中,並且可以在任何地方輕松創建環境,例如與Jenkins測試等配合使用。

virtualenv的情況下,可以從virtualenvbin目錄中顯式調用python解釋器。

對於這種情況下的本地模塊,可以使用本地PyPI服務器集中自定義模塊,它們也可以包含在需求文件中(通過pip的--extra-index選項)。

編輯並回復OP的評論:

我以前沒有使用SublimeREPL ,但是,根據您所描述的情況,我認為總體上最簡單的方法可能是將目錄符號鏈接到您的site-packages (或dist-packages ,視情況而定)目錄中。

對於生產服務器而言,這不是理想的方案,但是出於您的目的,在客戶端盒上,我認為這很好。 如果您不想使用文件夾名稱,即import ch1/foo ,則需要在這些目錄內進行符號鏈接,以便只需import foo 如果可以使用目錄名,即import ch1/foo ,則只需要符號鏈接頂級代碼目錄。

暫無
暫無

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

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