![pip を使用して Python パッケージをインストールする](https://rvso.com/image/1000941/pip%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20Python%20%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B.png)
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 リポジトリで説明されています。--user
pip
pip
pypa の最新バージョンは pypa.py にあります。そしてpypa の最新バージョンは pypa.py にあります。。
これを回避するには、virtualenv を使用することをお勧めします。手順は次のとおりです。
virtualenv
まだインストールしていない場合はインストールしてください:sudo apt update sudo apt install virtualenv
仮想環境を作成してアクティブ化し、アップグレードします
pip
。virtualenv venv source venv/bin/activate pip install -U pip
このオプション
pymemcache
を使用して、指定したディレクトリにインストールします。-t
pip install -t /home/praveen/Code/AWS/Lambda/Memcached-Py pymemcache