簡體   English   中英

使用子模塊依賴項進行設置

[英]setup with submodules dependencies

我們有一個 python 包,它也是一個 git repo。 這取決於其他 python 包,它們本身就是 git repos。 我們制作了前者的后者 git 子模塊。 這些都不是公開的,所以沒有 PyPI。

與使用子模塊依賴項進行安裝相關的其他問題都不符合我們的模式。 我的問題不是關於使用setuptools查找(子)包,也不是關於相對導入。

這是我們的結構:

package-repo/
    setup.py
    setup.cfg
    README.md
    .gitignore
    .gitmodules
    .git/
    submodule-repo/
        .git/
        .gitignore
        setup.py
        setup.cfg
        README.md
        submodule/
            __init__.py
            moduleX.py
            moduleY.py
    package/
        __init__.py
        moduleA.py
        moduleB.py
        subpackage1/

與requirements.txt的情況一樣,我天真地認為以下內容可以解決:

from setuptools import setup

setup(name='package',
      version='0.4.1',
      description='A package depending on other self made packages',
      url='git.ownnetwork.com',
      author='wli',
      author_email='wli@',
      license='Proprietary',
      packages=['package','package.subpackage1'],
      include_package_data=True,
      python_requires='>=3.7',
    classifiers=[
        'Natural Language :: English',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
    ],
      install_requires=["SQLAlchemy",
                        "pandas",
                        "./submodule-repo"])

它不起作用。

另一種方法是在packages添加子模塊並在package_dir指明其目錄。 那么它並沒有那么好用,如果在安裝依賴模塊時無法安裝它,那么在“子模塊”中制作 setup.py 有什么意義? 我只想安裝它,而不必將它放在 PyPI 上或創建一個虛擬 PyPI 服務器,這是嚴重的矯枉過正,或者必須在 README.md 中指明要做什么(即pip install ./submodule-repo/ ),這是不優雅的。

有什么辦法? 我是否在 distutils 或 setuptools 文檔中錯過了它?

您需要指定從何處安裝子模塊。

install_requires=[
    'SQLAlchemy',
    'pandas',
     # Your private repository module
    '<dependency_name> @ git+ssh://git@github.com/<user_name>/<repo_name>@<branch>'
]

暫無
暫無

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

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