web-dev-qa-db-ja.com

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

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

126
joeforker

はい、できます。 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 .

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

121
Colonel Panic

最初にpip installpython setup.py sdistファイルを作成できます。 pip install -e .のようなpython setup.py developも使用できます。

105
Geoff Reedy

本当に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']
)
3
TomDotTom