Я думал, что это будет просто, но я думаю, что упускаю что-то легкое.

У меня Python 2.7 установлен в Ubuntu 12.04 через apt. Я взял исходный код для Python 2.6 и скомпилировал его. Теперь у меня есть следующая структура.

ll /usr/bin/python*
lrwxrwxrwx 1 root root       9 Apr 17  2012 /usr/bin/python -> python2.7*
lrwxrwxrwx 1 root root       9 Apr 17  2012 /usr/bin/python2 -> python2.7*
-rwxr-xr-x 1 root root 2799288 Aug  1 00:46 /usr/bin/python2.7*
-rwxr-xr-x 1 root root    1652 Aug  1 00:45 /usr/bin/python2.7-config*



/usr/local/bin$ ll
total 9120
drwxr-xr-x  2 root root    4096 Dec 17 20:35 ./
drwxr-xr-x 10 root root    4096 Oct  7  2010 ../
-rwxrwxr-x  1 root root     111 Dec 17 15:39 2to3*
-rwxr--r--  1 root root     246 Jan 19  2012 fixvpnroute*
-rwxrwxr-x  1 root root      99 Dec 17 15:39 idle*
-rwxrwxr-x  1 root root      84 Dec 17 15:39 pydoc*
-rwxr-xr-x  2 root root 4637487 Dec 17 20:35 python*
-rwxr-xr-x  2 root root 4637487 Dec 17 20:35 python2.6*
-rwxr-xr-x  1 root root    1424 Dec 17 20:35 python2.6-config*
lrwxrwxrwx  1 root root      16 Dec 17 20:35 python-config -> python2.6-config*
-rwxrwxr-x  1 root root   18233 Dec 17 15:39 smtpd.py*
-rwxr-xr-x  1 root root     316 Dec 17 15:54 virtualenv*
-rwxr-xr-x  1 root root     324 Dec 17 15:54 virtualenv

Я установил virtualenv с помощью pip перед установкой python 2.6. Теперь, когда я пытаюсь использовать virtualenv, я получаю сообщение об ошибке.

sudo virtualenv -p /usr/local/bin/python2.6 testproject
Running virtualenv with interpreter /usr/local/bin/python2.6
New python executable in testproject/bin/python2.6
Not overwriting existing python script testproject/bin/python (you must use testproject/bin/python2.6)
Installing setuptools.............
  Complete output from command /home/greg/Projects/...roject/bin/python2.6 -c "#!python
\"\"\"Bootstra...sys.argv[1:])






" --always-copy -U setuptools:
  -c:67: DeprecationWarning: the md5 module is deprecated; use hashlib instead
Traceback (most recent call last):
  File "<string>", line 67, in <module>
  File "/usr/local/lib/python2.6/md5.py", line 10, in <module>
    from hashlib import md5
  File "/usr/local/lib/python2.6/hashlib.py", line 138, in <module>
    sha224 = __get_builtin_constructor('sha224')
  File "/usr/local/lib/python2.6/hashlib.py", line 66, in __get_builtin_constructor
    import _sha256
ImportError: No module named _sha256
----------------------------------------
...Installing setuptools...done.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 2560, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 964, in main
    never_download=options.never_download)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1074, in create_environment
    search_dirs=search_dirs, never_download=never_download)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 611, in install_setuptools
    search_dirs=search_dirs, never_download=never_download)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 583, in _install_req
    cwd=cwd)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1042, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/greg/Projects/...roject/bin/python2.6 -c "#!python
\"\"\"Bootstra...sys.argv[1:])






" --always-copy -U setuptools failed with error code 1

Тогда я попытался установить setuptools с помощью pip, но ...

sudo pip install setuptools
Requirement already satisfied (use --upgrade to upgrade): distribute in /usr/lib/python2.7/dist-packages
Cleaning up.

Итак, я думаю, что моя проблема связана с запуском pip в контексте Python 2.6, но я не уверен, как это сделать. Я на трассе? ..

редактировать

Решением было перекомпилировать Python 2.6 с нескомментированными модулями sha.

В исходном каталоге я отредактировал Modules/Setup и раскомментировал эти строки.

# The _sha module implements the SHA checksum algorithms.
# (NIST's Secure Hash Algorithms.)
_sha shamodule.c
_sha256 sha256module.c
_sha512 sha512module.c

Затем заново настройте и выполните установку.

0