2017-07-03 69 views
3

我需要在我的產品中包含幾個python軟件包,但構建的jenkins服務器無法訪問Internet。我使用pip下載下載了一個軟件包,下載了軟件包及其所有依賴項。但是,我需要確保pip知道在哪裏找到這些依賴關係。我正在嘗試使用選項--no-index和--find-links以及帶有指向這些軟件包鏈接的html文件的路徑。完整的命令如下:pip安裝 - 查找鏈接html文件格式

pip install http://SERVER/python-packages/impyla/0.14.0/impyla-0.14.0.tar.gz --no-index --trusted-host SERVER --find-links http://SERVER/python-packages/impyla/0.14.0/packages.html 

...和的packages.html文件看起來像這樣:

<a href="http://SERVER/python-packages/impyla/0.14.0/bitarray-0.8.1.tar.gz">bitarray-0.8.1.tar.gz</a> 
 
<a href="http://SERVER/python-packages/impyla/0.14.0/ply-3.10.tar.gz">ply-3.10.tar.gz</a> 
 
<a href="http://SERVER/python-packages/impyla/0.14.0/six-1.10.0-py2.py3-none-any.whl">six-1.10.0-py2.py3-none-any.whl</a> 
 
<a href="http://SERVER/python-packages/impyla/0.14.0/thriftpy-0.3.9.tar.gz">thriftpy-0.3.9.tar.gz</a>

然而,當詹金斯嘗試運行這些命令,我得到:

未能找到滿足要求的版本 thriftpy> = 0.3.5(從impyla == 0.14.0)(從版本:)

沒有匹配的分佈發現thriftpy> = 0.3.5(從 impyla == 0.14.0)

我想知道我的packages.html是不是在一個正確的格式,但我找不到任何使用HTML文件的依賴關係解決的例子。有沒有人使用過 - 查找鏈接成功?

+1

你可以用'-vvv'來粘貼你的pip命令的輸出嗎? – emulbreh

+0

我加了-v,它給了我答案! 跳過頁面http://SERVER/python-packages/impyla/0.14.0/packages.html,因爲Content-Type:text/plain; charset = utf-8 我正在提供html文件的回購並未正確設置Content-Type。謝謝你的建議! –

回答

0

我從來沒有見過HTML格式的需求文件,但也許是可能的,官方文檔中的例子是.txt文件,但我認爲你的麻煩是另一回事,例如,你必須檢查以下操作系統的架構做了包的下載,因爲這個包綁定到那個架構,我的意思是64位或32位,另一件事是檢查你是否有相同的Python解釋器或另一個與你下載軟件包的兼容,所有這些都是重要的,即使對於你保留thriftpy版本並不重要,也不要指定該軟件包的版本並將其從需求文件中刪除,並讓該pip找到爲你工作的市長版本,如果你不這樣做會發生什麼指定一個包的版本。

+0

根據查找鏈接的pip文檔: 如果一個url或路徑到一個html文件,然後解析鏈接到檔案。如果一個本地路徑或文件:// url是一個目錄,然後在目錄列表中查找存檔。 我並不擔心體系結構 - 我用來下載軟件包的機器是產品將要部署的相同類型的機器。謝謝! –