2016-03-11 3 views
1

Я бы хотел использовать virtualenv для настройки моей среды и для установки конкретных библиотек. Я хочу, чтобы сценарий весь процесс, но до сих пор он не работает.scripting python install library with pip on virtualenv

Вот моя попытка:

import subprocess 
import pip 

virtualenv_dir="my_directory" 

subprocess.call(["virtualenv", virtualenv_dir, "--system-site-packages"]) 

activate_this_file="{}/bin/activate_this.py".format(virtualenv_dir) 

# instead of sourcing the /bin/activate file, I update dynamically 
# my current python environment 
execfile(activate_this_file, dict(__file__ = activate_this_file)) 
pip.main(["install","my_lib"]) 

Таким образом, my_lib устанавливается на /usr/lib/python2.7/site-packages вместо "my_directory/Lib/python2.7/сайт-пакетов" , как я желаю.

ответ

0

Я придумал следующее обходным:

# In main.py 
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import subprocess, os 
virtualenv_dir="my_directory" 

subprocess.call(["virtualenv", virtualenv_dir, "--system-site-packages"]) 
subprocess.call([os.path.join(virtualenv_dir, 'bin/python'),"-c","import pip; pip.main(['install','my_lib'])]) 
+0

'' virtualenv' и pip' являются питон модули, поэтому не знаю, почему вам нужно использовать 'subprocess'. –

Смежные вопросы