31

setup.pyパブリックとプライベートの両方の依存関係を持つプライベート プロジェクトのインストール ファイルを作成しようとしています。パブリックのものは PyPI でホストされていますが、プライベートのものはsimplepypiを実行しているサーバーでホストされています。

インストール中にパブリックとプライベートの両方の依存関係を解決して取得したいと考えています。

したがって、依存関係をsetup.py次のように追加しました。

setup(
    ...
    install_requires = [
        # public dependencies
        'argparse==1.2.1',
        'beautifulsoup4==4.1.3',
        'lxml==3.1.0',
        'mongoengine==0.8.2',
        'pymongo==2.5.2',
        'requests==1.1.0',
        'Cython==0.18',
        # private dependencies
        'myprivatepackage1',
        'myprivatepackage2'
    ],
    dependency_links=['http://pypi.myserver.com/packages'],
    ...
)

python setup.py sdistコマンドを使用してパッケージ tarball をビルドし、pip install --verbose path/to/tarball.tar.gz.

ただし、pip ログの行には、私のプライベート PyPI サーバーはどこにも記載されておらず、https: //pypi.python.org/simple/は 2 回クエリされているようです。

Running setup.py egg_info for package from file:///home/b/code/mapado/mypackage/dist/mypackage-0.5.1.tar.gz
    running egg_info
    creating pip-egg-info/mypackage.egg-info
    writing requirements to pip-egg-info/mypackage.egg-info/requires.txt
    writing pip-egg-info/mypackage.egg-info/PKG-INFO
    writing top-level names to pip-egg-info/mypackage.egg-info/top_level.txt
    writing dependency_links to pip-egg-info/mypackage.egg-info/dependency_links.txt
    writing manifest file 'pip-egg-info/mypackage.egg-info/SOURCES.txt'
    warning: manifest_maker: standard file '-c' not found
    
    reading manifest file 'pip-egg-info/mypackage.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'pip-egg-info/mypackage.egg-info/SOURCES.txt'
Downloading/unpacking myprivatepackage (from mypackage==0.5.1)
  Could not fetch URL https://pypi.python.org/simple/myprivatepackage/: HTTP Error 404: Not Found (myprivatepackage does not have any releases)
  Will skip URL https://pypi.python.org/simple/myprivatepackage/ when looking for download links for myprivatepackage (from mypackage==0.5.1)
  Could not fetch URL https://pypi.python.org/simple/myprivatepackage/: HTTP Error 404: Not Found (myprivatepackage does not have any releases)
  Will skip URL https://pypi.python.org/simple/myprivatepackage/ when looking for download links for myprivatepackage (from mypackage==0.5.1)
  Could not find any downloads that satisfy the requirement myprivatepackage (from mypackage==0.5.1)
Cleaning up...

私は何が欠けていますか?

4

3 に答える 3

20

simplepyのドキュメントのように~/.pypirc、適切なホスト名でセットアップする必要があると述べたように、ホストを指定しなかったようです

それを使用するには、「simplepypi」を実行します。次の方法でパッケージをアップロードできます。

Modify your ~/.pypirc so it looks like:

    [distutils]
    index-servers =
        pypi
        local

    [local]
    username: <whatever>
    password: <doesn't matter, see above>
    repository: http://127.0.0.1:8000

    [pypi]
    ...

次に、パッケージをアップロードします

python setup.py sdist upload -r local

そこからインストールできます

pip install -i http://127.0.0.1:8000/pypi <your favorite package>

これが役立つことを願っています。

于 2013-09-16T13:33:02.877 に答える
0

パッケージを通常の pip パッケージとして作成し、プライベート リポジトリに公開できます。インストールするに--extra-index-url は、設定ファイルでグローバル オプションを指定します。

$ cat ~/.pip/pip.conf
[global]
extra-index-url = https://...
于 2020-10-22T12:33:14.583 に答える