2016-04-06 6 views
1

私は2つのライブラリlib1とlib2とそれらを使用するプログラムprogram1を持っています。 LIB2のためのsetup.pyは明らかにLIB2とLIB1インスタンスを置き換え、それ以外は同じであるパッケージをローカルファイルシステムで使用するには?

from distutils.core import setup 

setup(name='lib1', 
     version='0.1.0', 
     maintainer='foven', 
     maintainer_email='[email protected]', 
     url='example.com/lib1', 
     packages=[ 
     ] 
    ) 

: ライブラリは次のようになりsetup.pyファイルを持っています。

今、プログラム1は、このようになりますrequirements.txtファイル、持っている:私はにこれらを入れて準備ができていないよ以来、私は、ファイルシステム上にその場所から2つのライブラリを使用したい

-e ../lib1 
-e ../lib2 

をリポジトリはまだありませんprogram1にpip install -r requirements.txtを実行すると、これはうまくいくようです。しかし

、私はこのように見えるようにLIB1/setup.pyファイル変更した場合:PIP -rをインストールし実行している

axel == 0.0.4 
-e ../lib1 
-e ../lib2 

:これまで

from distutils.core import setup 

setup(name='lib1', 
     version='0.1.0', 
     maintainer='foven', 
     maintainer_email='[email protected]', 
     url='example.com/lib1', 
     packages=[ 
      'axel' 
     ] 
    ) 

および変更PROGRAM1/requirements.txtをprogram1のrequirements.txtにエラーが発生します。

error: package directory 'axel' does not exist 

ただし、ピップリストとピップフリーズは両方ともeパッケージがインストールされています。

私にはピップがインストールされたパッケージやピピの通常の場所でアクセルを探しているようには見えませんが、これはあまり経験がないので完全に間違っている可能性があります。私は空のディレクトリLIB1 /アクセルを作成して実行すると、PIPプログラム1のために-r requirements.txtをインストールし、動作しているようです:

Obtaining file:///C:/Users/foven/code/lib1 (from -r requirements.txt (line 2)) 
Obtaining file:///C:/Users/foven/code/lib2 (from -r requirements.txt (line 3)) 
Requirement already satisfied (use --upgrade to upgrade): axel==0.0.4 in c:\program files\python35\lib\site-packages (from -r requirements.txt (line 1)) 
Installing collected packages: lib1, lib2 
    Running setup.py develop for lib1 
    Running setup.py develop for lib2 
Successfully installed lib1-0.1.0 lib2-0.1.0 

だけ明確にするために、私は私の目標を修正再表示されます:私はできるようにしたいです私が取り組んでいるプログラムで、ローカルのファイルシステム上にのみ存在する2つのライブラリを使用してください。私は間違って何をしていますか、そして私が望むやり方でこれらのライブラリとプログラムをどのようにセットアップすればいいですか?

答えて

1

packagesは、作成中のパッケージ内のパッケージを一覧表示するためのものです。 install_requiresは、あなたのパッケージが依存するパッケージのリストです。あなたはpackagesに依存関係「axel」を入れます。 'axel'という内部パッケージはないので、もちろんその名前のディレクトリは見つかりません。

setup(
    ..., 
    install_requires=['axel'], 
    ... 
) 
関連する問題