![Установка пакетов Python с помощью pip](https://rvso.com/image/1000941/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2%20Python%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20pip.png)
Я пытаюсь установить pymemcache на Ubuntu 17.04 с помощью pip и получаю следующую ошибку. Модуль устанавливается без опции -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
Эта проблема вызвана конфликтом между явной -t
опцией и неявной --user
опцией, которая присутствует в исправленной версии Ubuntu pip
. Это описано в pip
репозитории GitHub по адресуhttps://github.com/pypa/pip/issues/3826иhttps://github.com/pypa/pip/issues/4390.
Чтобы обойти это, я бы предложил использовать virtualenv. Шаги следующие:
Установите
virtualenv
, если вы этого еще не сделали:sudo apt update sudo apt install virtualenv
Создайте и активируйте 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