pip を使用して Python パッケージをインストールする

pip を使用して Python パッケージをインストールする

pip を使用して Ubuntu 17.04 に pymemcache をインストールしようとすると、以下のエラーが発生します。ただし、モジュールは -t オプションなしでインストールされます。ただし、パッケージ化してクラウドにアップロードできるように、モジュールを特定のディレクトリにインストールしたいと考えています。

誰か助けてくれませんか?

pip install -t /home/praveen/Code/AWS/Lambda/Memcached-Py pymemcache



Collecting pymemcache
    Using cached pymemcache-1.4.3-py2.py3-none-any.whl
Collecting six (from pymemcache)
    Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: six, pymemcache
Exception:
Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
        status = self.run(options, args)
    File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 360, in run
        prefix=options.prefix_path,
    File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
        **kwargs
    File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
        self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
    File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
        isolated=self.isolated,
    File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 247, in move_wheel_files
        prefix=prefix,
    File "/usr/lib/python2.7/dist-packages/pip/locations.py", line 153, in distutils_scheme
        i.finalize_options()
    File "/usr/lib/python2.7/distutils/command/install.py", line 289, in finalize_options
        raise DistutilsOptionError("can't combine user with prefix, "
DistutilsOptionError: can't combine user with prefix, exec_prefix/home, or install_(plat)base

答え1

この問題は、Ubuntu のパッチ適用版の にある明示的な-tオプションと暗黙的なオプションの競合によって発生します。これはの GitHub リポジトリで説明されています。--userpippippypa の最新バージョンは pypa.py にあります。そしてpypa の最新バージョンは pypa.py にあります。

これを回避するには、virtualenv を使用することをお勧めします。手順は次のとおりです。

  1. virtualenvまだインストールしていない場合はインストールしてください:

    sudo apt update
    sudo apt install virtualenv
    
  2. 仮想環境を作成してアクティブ化し、アップグレードしますpip

    virtualenv venv
    source venv/bin/activate
    pip install -U pip
    
  3. このオプションpymemcacheを使用して、指定したディレクトリにインストールします。-t

    pip install -t /home/praveen/Code/AWS/Lambda/Memcached-Py pymemcache
    

関連情報