我編寫了一個依賴于 Debian 軟件包python3-apt的 Python 實用程序腳本:import apt...def get_packages():? ? cache = apt.Cache()? ? for pkg in cache:? ? ? ? if pkg.installed and pkg.name in PACKAGE_LIST:? ? ? ? ? ? yield pkg.name我現在正在將該腳本擴展為一個項目,最終目的是使其在 PyPI 上可用和/或作為 Debian 軟件包本身。我使用 virtualenvs 來隔離我的 Python 開發環境。我需要將什么包名稱(或路徑)添加到我的 virtualenv 中,以便我可以import apt從該環境中調用?到目前為止我已經嘗試過:適合 PyPI。奇怪的舊版本。文本。目前不支持apt。PyPI 上以“apt”開頭的其他內容。他們都不是簡單的中介python3-apt。
1 回答

慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
您可以使用 Pipenv 實現此目的,如下所示(類似的說明應該適用于其他 venv 管理器):
pipenv --site-packages # see note 1
PIP_IGNORE_INSTALLED=1 pipenv install # see note 2
您更有可能將其運行為:
pipenv --site-packages
PIP_IGNORE_INSTALLED=1 pipenv install -e . --dev
# treats codebase as a package, also installs dev dependencies
注 1:我們必須訪問系統包(又名站點包),以便我們可以import apt.
注 2: ...但我們更喜歡 virtualenv 包而不是系統包。有關詳細信息,請參閱 https://pipenv.pypa.io/en/latest/advanced/#working-with-platform-provided-python-components。
評論:
這意味著 Pipfile 中未定義的所有其他系統包也可以在 venv 中使用。您必須記住,使用相同代碼庫的其他開發人員不一定可以使用它們。如果你有一個基本的 CI 環境,它應該能夠捕捉到這一點。
此方法適用于 vext 不支持的其他軟件包。
添加回答
舉報
0/150
提交
取消