簡體   English   中英

pip 從私人倉庫安裝,但 PyPi 的要求僅安裝私人倉庫 package

[英]pip install from private repo but requirements from PyPi only installs private package

不同於pip 從私人倉庫安裝但來自 PyPi 的要求我能夠從我們的私人人工制品實例安裝我的 package(菊花):

pip3 install -i https://our-artifactory/pypi/simple daisy

輸出是:

Looking in indexes: https://our-artifactory/api/pypi/simple
Collecting daisy
  Downloading https://our-artifactory/artifactory/api/pypi/my-repo/daisy/0.0.2/daisy-0.0.2-py3-none-any.whl (4.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 12.1 MB/s eta 0:00:00
ERROR: Could not find a version that satisfies the requirement pandas<2.0.0,>=1.5.2 (from daisy) (from versions: none)
ERROR: No matching distribution found for pandas<2.0.0,>=1.5.2

然后,當我嘗試自行安裝 pandas 時,它會起作用:

pip3 install pandas
Collecting pandas
  Downloading pandas-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.2/12.2 MB 16.0 MB/s eta 0:00:00
Collecting python-dateutil>=2.8.1
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pytz>=2020.1
  Downloading pytz-2022.7-py2.py3-none-any.whl (499 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 499.4/499.4 kB 4.1 MB/s eta 0:00:00
Collecting numpy>=1.20.3
  Downloading numpy-1.24.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.3/17.3 MB 18.9 MB/s eta 0:00:00
Collecting six>=1.5
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: pytz, six, numpy, python-dateutil, pandas
Successfully installed numpy-1.24.1 pandas-1.5.2 python-dateutil-2.8.2 pytz-2022.7 six-1.16.0

它甚至是正確的版本。 不知何故,我認為在第一個命令中它也試圖從我們的私人倉庫中獲取所有依賴項。 有沒有辦法從私有倉庫中獲取 package 並從 PyPI 中獲取依賴項?

順便說一句,我在 conda (miniforge) Python3.9 環境中工作。

編輯:我進一步使用:

pip3 install -i https://our-artifactory/artifactory/api/pypi/dl-innersource-pypi/simple daisy --extra-index-url https://pypi.org/simple

但是它從 PyPI 安裝 daisy,我想很不幸我選擇了一個已經存在的名字......

編輯:我可以通過指定我的雛菊版本來讓它工作,如下所示:

pip install --index-url https://my-artifactory/artifactory/api/pypi/dl-common-pypi/simple daisy==0.0.2

但是,省略版本號將恢復為獲取 Daisy 的 PyPI 版本。 這是否應該被視為一個錯誤,因為我明確告訴 pip 先查看我的人工制品,然后再查看公共 PyPI?

您可能可以使用simpleindex類的解決方案來解決此問題。 這將允許您根據項目名稱設置一些規則,以將pip重定向到一個索引或另一個。

也許是這樣的(未經測試):

[routes."daisy"]
source = "http"
to = "https://my-artifactory/artifactory/api/pypi/dl-common-pypi/simple/daisy/"

# Otherwise use PyPI.
[routes."{project}"]
source = "http"
to = "https://pypi.org/simple/{project}/"

[server]
host = "127.0.0.1"
port = 8000

但我想其他一些索引代理軟件也可以做到這一點。

本次討論中還有更多關於該主題的內容。

暫無
暫無

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

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