Моя цель - показать приветственное приложение Django в мире, которое использует postgres для экземпляра EC2 под управлением Ubuntu. Я вошел в SSH и через клонировать Git репозиторий, содержащий проект Django с этим requirements.txt:Почему у меня нет разрешения на установку psycopg2 в virtualenv
Django==1.8.2
djangorestframework==3.1.2
psycopg2==2.6
Я создал virtualenv, а затем, когда я побежал (ec2_deploy_test)[email protected]2-31-22-100:~/ec2-deploy-test$ pip install -r requirements.txt
, это было брошено исключение:
Collecting psycopg2==2.6 (from -r requirements.txt (line 3)) /home/ubuntu/Envs/ec2_deploy_test/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning . InsecurePlatformWarning Downloading psycopg2-2.6.tar.gz (367kB) 100% |████████████████████████████████| 368kB 785kB/s Building wheels for collected packages: psycopg2 Exception: Traceback (most recent call last): File "/home/ubuntu/Envs/ec2_deploy_test/local/lib/python2.7/site-packages/pip/basecommand.py", line 223, in main status = self.run(options, args) File "/home/ubuntu/Envs/ec2_deploy_test/local/lib/python2.7/site-packages/pip/commands/install.py", line 291, in run wb.build(autobuilding=True) File "/home/ubuntu/Envs/ec2_deploy_test/local/lib/python2.7/site-packages/pip/wheel.py", line 753, in build ensure_dir(output_dir) File "/home/ubuntu/Envs/ec2_deploy_test/local/lib/python2.7/site-packages/pip/utils/init.py", line 70, in ensure_dir os.makedirs(path) File "/home/ubuntu/Envs/ec2_deploy_test/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File "/home/ubuntu/Envs/ec2_deploy_test/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File "/home/ubuntu/Envs/ec2_deploy_test/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File "/home/ubuntu/Envs/ec2_deploy_test/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/home/ubuntu/.cache/pip/wheels/ab'
Затем я побежал (ec2_deploy_test)[email protected]:~/ec2-deploy-test$ sudo pip install -r requirements.txt
и psycopg2 успешно установлен.
Зачем мне нужны права root для установки пакета python в моей виртуальной среде? Я новичок в Linux и sysadmin в целом, поэтому все советы приветствуются. Заранее спасибо.
идентификатор вы Sudo, это не на самом деле установка его в virtualenv. Кроме того, если вы создадите свой виртуальный файл как root, тогда у пользователей не будет прав на установку всех пакетов. – Abhishek