簡體   English   中英

使用 setup.py 和 requirements.txt 用 github 版本覆蓋 package?

[英]Using setup.py and requirements.txt to overwrite package with a github version?

我正在開發一個 github 項目,該項目最終將在 conda 和 PyPl 上發布。 由於 PyPl(以及當前的開發需求),我需要使用以下命令進行安裝: python -m pip install -e. (從 github 克隆文件夾內部 - pip 21)

但是,我的項目依賴於分叉的 github 存儲庫。 我遇到的問題是我找不到使用上面的命令從該 fork 安裝 package 的方法,....但我必須這樣做。 我能找到的任何技巧要么一無所獲,要么就是 repo 的 prod 版本。 唯一有效的兩件事是(1)手動或腳本啟動 pip install [不能這樣做,需要 setup.py 安裝東西](2)使用 conda [不能單獨依賴 conda,我需要常規 pip 工作] .

你能幫我或指出我正確的方向嗎?

我在底部使用包含此行的requirements.txt

...
-e git+https://github.com/jojurgens/pyqode.qt.git@master#egg=pyqode.qt

和一個包含這個的setup.py

with open(here / "requirements.txt", encoding="utf-8") as f:
    requirements = f.read().splitlines()

setup(
    name="qiskit_metal",
    version="0.0.2",
    install_requires=requirements,
)

執行時我收到此錯誤:

...error in setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Parse error at "'-e git+h'": Expected W:(abcd...)

我認為您應該指定的是 Shapely 的要求版本,例如Shapely==<version> 如果您想從不同的源(而不是從 pip)安裝,請在 requirements.txt 之外進行。 為此,您可以在 python 代碼中調用 bash 命令。

其實我終於找到了答案。 對於可能需要此信息的人,這是我所做的:

requirements.txt我已將行更改為:

pyqode.qt @ git+https://github.com/jojurgens/pyqode.qt.git#egg=pyqode.qt

僅此一項就解決了錯誤。

這也解決了我關於在不破壞 conda 環境的情況下“更新”conda 環境的其他(此處未描述)問題。 所以現在我使用相同的安裝命令更新環境(而不是更新命令,它不起作用) python -m pip install -e.

暫無
暫無

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

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