「python setup.py install」依存関係の解決に「easy_install」の代わりに「pip」を使用できますか?


137

python setup.py installrequires=[]使用してにリストされてeasy_installいるパッケージを自動的にインストールします。pip代わりに使用するにはどうすればよいですか?

回答:


133

はい、できます。パッケージは、Webまたはコンピューター上のtarballまたはフォルダーからインストールできます。例えば:

Web上のtarballからインストール

pip install https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz

ローカルのtarballからインストール

wget https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
pip install requests-2.3.0.tar.gz

ローカルフォルダからインストール

tar -zxvf requests-2.3.0.tar.gz
cd requests-2.3.0
pip install .

requests-2.3.0フォルダを削除できます。

ローカルフォルダーからインストール(編集可能モード)

pip install -e .

これにより、パッケージが編集可能モードでインストールされます。コードに加えた変更は、システム全体にすぐに適用されます。これは、パッケージ開発者であり、変更をテストする場合に役立ちます。また、インストールを中断せずにフォルダを削除することはできません。


10
「python setup.py install」を使用してパッケージをインストールすることに慣れている場合、pipで依存関係を解決するために「python setup.py install」を取得する方法を尋ねるのは自然ですが、それは間違った質問です。解決策は、pipを使用してパッケージをインストールし、「setup.py install」の使用を停止することです。
joeforker 2015年

8
@joeforkerの問題は、次のような場合にeasy_installの使用を強制される可能性があることですpython setup.py test
TomDotTom

1
@TomDotTom実行時にpipを強制的に使用する方法についてのアイデアはありますsetup.py testか?
Jan Sila

@ joeforker、pipはsetup.py舞台裏で使用します。私のパッケージをpipでインストールできるようにしたい場合は、setup.pyファイルを作成する必要があります。
カウリネーター

これの証明が必要な場合は、を試してくださいpip install -e git+https://github.com/octocat/Hello-World.git#egg=Hello-World。エラーはNo such file or directory: 'c:\python\src\Hello-World\setup.py
カウリネーター

110

pip installおそらくpython setup.py sdist最初にファイルを作成できます。あなたはできるもpip install -e .どのようなものですpython setup.py develop


14
これを試してみてください:ファイル自体pip install -eではなくディレクトリを引数として取ることに注意してくださいsetup.py。最初は私にpip install -e .混乱を引き起こしている期間に気づきませんでした:)
Markus Amalthea Magnuson

3
おかげで、pip install -e .私はインストールできますが、pipを使用して、編集可能なモードからどのようにアンインストールできますか?
JuanPablo

2
編集可能なインストールは、通常の「pip uninstall <パッケージ名>」でアンインストールされます
joeforker

4

本当に使い始めたら、次のpython setup.py installようなことを試すことができます。

from setuptools import setup, find_packages
from setuptools.command.install import install as InstallCommand


class Install(InstallCommand):
    """ Customized setuptools install command which uses pip. """

    def run(self, *args, **kwargs):
        import pip
        pip.main(['install', '.'])
        InstallCommand.run(self, *args, **kwargs)


setup(
    name='your_project',
    version='0.0.1a',
    cmdclass={
        'install': Install,
    },
    packages=find_packages(),
    install_requires=['simplejson']
)

1
ありがとうございますが、この方法を使用した再帰的なコールバックに直面しています。「python setup.py install」を使用している場合、Install.runを呼び出してpip installを呼び出します。この関数はInstallを呼び出します。もう一度実行します...
Ziggy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.