2016-01-21 5 views
3

У меня возникли проблемы с созданием virtualenv на сервере, который блокирует весь доступ в Интернет. Кто-нибудь успешно сделал это раньше? Я искал, но не обнаружил ничего полезного. У меня нет проблем с передачей данных взад и вперед, но я не знаю, какие пакеты необходимо загрузить и какие параметры мне нужны для установки.python: Как создать virtualenv без подключения к Интернету

Если вам интересно, что я получил, пытаясь создать, вот трассировка:

[email protected] /spare/local/latency $virtualenv -p /usr/bin/python2.6 latency 
Running virtualenv with interpreter /usr/bin/python2.6 
New python executable in latency/bin/python2.6 
Also creating executable in latency/bin/python 
Installing setuptools..................... 
    Complete output from command /spare/local/latency/latency/bin/python2.6 -c "#!python 
\"\"\"Bootstra...sys.argv[1:]) 






" --always-copy -U setuptools: 
    Downloading http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg 
Traceback (most recent call last): 
    File "<string>", line 279, in <module> 
    File "<string>", line 211, in main 
    File "<string>", line 159, in download_setuptools 
    File "/usr/lib64/python2.6/urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib64/python2.6/urllib2.py", line 391, in open 
    response = self._open(req, data) 
    File "/usr/lib64/python2.6/urllib2.py", line 409, in _open 
    '_open', req) 
    File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain 
    result = func(*args) 
    File "/usr/lib64/python2.6/urllib2.py", line 1181, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 
    File "/usr/lib64/python2.6/urllib2.py", line 1156, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [Errno 110] Connection timed out> 

Спасибо за любую помощь.

+0

Какую версию virtualenv вы используете? – wil93

+0

Каменная версия, 1.7.2. –

ответ

4

Подключение к Интернету используется для установки пакетов setuptools и pip в виртуальной среде. Старые версии virtualenv попытаются загрузить эти два пакета, в то время как новые версии будут поставляться с ними и будут просто распаковывать их, когда это необходимо.

Поскольку ваша версия virtualenv (1.7.2) ниже 1.10, вы можете использовать флаг --never-download, чтобы избежать подключения к Интернету. Позже вы можете установить (в автономном режиме) то, что вам нужно.

Here (раздел «Опция -extra-search-dir Option») объясняется, как загружать setuptools и pip без подключения к Интернету. Вы в основном должны получить файлы .egg для этих пакетов и поместить их где-то местные, а затем вам нужно сделать:

$ virtualenv --extra-search-dir=/path/to/eggs --never-download ENV 

При обновлении до версии> = 1,10, то virtualenv никогда не будет подключаться к в интернете независимо от какого-либо флага (см. раздел «Изменения & Новости» here)

+0

Это какой-то прогресс, по крайней мере, он что-то создал. Но как я могу установить 'pip' локально? –

+0

См. Https://pypi.python.org/pypi/virtualenv/1.7.2 раздел «Опция -extra-search-dir» ... Я также обновил ответ – wil93

+0

Звучит многообещающе. Есть ли простой способ захватить все .egg-файлы? –

0
mkdir .mypypi 
pip install --download $HOME/.mypypi ipython ipdb django 

Теперь передайте содержимое с .mypypi на ваш сервер. Допустим, вы скопировали его в $HOME Тогда сделайте это:

pip install --no-index --find-links=file:/$HOME/.mypypi ipython 

Это должно работать для requirements.txt файла тоже.

+0

Я не думаю, что это помогло бы. Я даже не мог дойти до этого шага. Я даже не мог создать virtualenv с исполняемым файлом 'activate' и' python'. –

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