Como instalar pacotes python com virtualenv sem instalá-los globalmente?

1

Eu instalei virtualenv com sudo apt-get install virtualenv . Está neste tutorial que você precisa usar sua pasta env/bin/ possui o comando pip ou pip3 para instalar módulos no ambiente virtual, e é explicitamente declarado que você não usa sudo para fazer isso.

Infelizmente, isso não funciona para mim, eu recebo um PermissionError quando tento fazer isso. Mas usar o sudo antes de pip3 irá instalar o módulo globalmente, então não vou tirar vantagem de ter um ambiente virtual.

Por exemplo quando na minha pasta env / bin /, eu corro pip3 install pytest :

Collecting pytest
  Downloading pytest-3.0.7-py2.py3-none-any.whl (172kB)
    100% |████████████████████████████████| 174kB 1.2MB/s 
Collecting py>=1.4.29 (from pytest)
  Downloading py-1.4.33-py2.py3-none-any.whl (83kB)
    100% |████████████████████████████████| 92kB 2.1MB/s 
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from pytest)
Installing collected packages: py, pytest
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python3.5/dist-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python3.5/dist-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python3.5/dist-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python3.5/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python3.5/dist-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python3.5/dist-packages/pip/wheel.py", line 316, in clobber
    ensure_dir(destdir)
  File "/usr/local/lib/python3.5/dist-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/usr/lib/python3.5/os.py", line 241, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.5/dist-packages/py-1.4.33.dist-info'

Como começo a usar virtualenv no Ubuntu 16.04 de maneira menos dolorosa?

    
por Drunken Master 12.05.2017 / 17:26

1 resposta

2

Depois de criar o ambiente virtual, você precisa ativá-lo:

$ virtualenv myenv
$ source myenv/bin/activate
(myenv) $ pip install pytest

ou para o Python 3:

$ virtualenv -p 'which python3' myenv
$ source myenv/bin/activate
(myenv) $ pip3 install pytest

Quando você terminar de usar o ambiente, poderá desativá-lo da seguinte forma:

$ deactivate
    
por MiniQuark 12.05.2017 / 21:21