亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 virtualenv 中“導入 apt”?

如何從 virtualenv 中“導入 apt”?

陪伴而非守候 2023-08-15 17:33:18
我編寫了一個依賴于 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 不支持的其他軟件包。


查看完整回答
反對 回復 2023-08-15
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號