2012-08-28 4 views
1

Je viens de passer à OS X Mountain Lion et cela a tué la plupart de mon environnement Python. J'ai réinstallé distribuer 0.6.28 (python distribute_setup.py install --prefix ~/Library/Python/2.7/site-packages) & pip 1.1 (python setup.py install --prefix ~/Library/Python/2.7/site-packages) à partir de zéro. Ensuite, j'ai installé virtualenv et virtualenvwerapper via pip sans erreur, mais la commande virtualenv ENVTEST omet comme suit:Comment réparer mon virtualenv?

$ virtualenv ENVTEST 
New python executable in TESTENV/bin/python 
Please make sure you remove any previous custom paths from your /Users/x/.pydistutils.cfg file. 
Installing setuptools.................done. 
Installing pip.... 
Complete output from command /Users/csh401/TESTENV/bin/python /Users/x/TESTENV/bin/easy_install /Users/x/Librar...ort/pip-1.0.2.tar.gz: 
/Users/x/TESTENV/bin/python: can't open file '/Users/x/TESTENV/bin/easy_install': [Errno 2] No such file or directory 
---------------------------------------- 
...Installing pip...done. 
Traceback (most recent call last): 
    File "/Users/x/bin/virtualenv", line 9, in <module> 
    load_entry_point('virtualenv==1.7.2', 'console_scripts', 'virtualenv')() 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 942, in main 
    never_download=options.never_download) 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1054, in create_environment 
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download) 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 654, in install_pip 
    filter_stdout=_filter_setup) 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1020, in call_subprocess 
    % (cmd_desc, proc.returncode)) 
OSError: Command /Users/x/.virtualenvs/env1/bin/python -x /Users/x/.virtu...nv1/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz failed with error code 2 

Ma meilleure estimation est qu'il a à voir avec le fait que j'avais du mal à installer distribute et pip jusqu'à ce que je ajouté l'argument --prefix. Mais maintenant que pip travaille, il ne s'installe pas au bon endroit.

MISE À JOUR

pip installé une ancienne version de virtualenv. J'ai couru pip install -U virtualenv et cela s'est déroulé sans accroc. Toujours obtenir une erreur, mais une erreur différente, maintenant.

$ virtualenv -vvv TESTENV 
Creating TESTENV/lib/python2.7 
Symlinking Python bootstrap modules 
    Symlinking TESTENV/lib/python2.7/config 
    Symlinking TESTENV/lib/python2.7/lib-dynload 
    Symlinking TESTENV/lib/python2.7/os.py 
    Ignoring built-in bootstrap module: posix 
    Symlinking TESTENV/lib/python2.7/posixpath.py 
    Cannot import bootstrap module: nt 
    Symlinking TESTENV/lib/python2.7/ntpath.py 
    Symlinking TESTENV/lib/python2.7/genericpath.py 
    Symlinking TESTENV/lib/python2.7/fnmatch.py 
    Symlinking TESTENV/lib/python2.7/locale.py 
    Symlinking TESTENV/lib/python2.7/encodings 
    Symlinking TESTENV/lib/python2.7/codecs.py 
    Symlinking TESTENV/lib/python2.7/stat.py 
    Symlinking TESTENV/lib/python2.7/UserDict.py 
    File TESTENV/lib/python2.7/lib-dynload/readline.so already exists 
    Symlinking TESTENV/lib/python2.7/copy_reg.py 
    Symlinking TESTENV/lib/python2.7/types.py 
    Symlinking TESTENV/lib/python2.7/re.py 
    Symlinking TESTENV/lib/python2.7/sre.py 
    Symlinking TESTENV/lib/python2.7/sre_parse.py 
    Symlinking TESTENV/lib/python2.7/sre_constants.py 
    Symlinking TESTENV/lib/python2.7/sre_compile.py 
    File TESTENV/lib/python2.7/lib-dynload/zlib.so already exists 
    Symlinking TESTENV/lib/python2.7/warnings.py 
    Symlinking TESTENV/lib/python2.7/linecache.py 
    Symlinking TESTENV/lib/python2.7/_abcoll.py 
    Symlinking TESTENV/lib/python2.7/abc.py 
    Symlinking TESTENV/lib/python2.7/_weakrefset.py 
Creating TESTENV/lib/python2.7/site-packages 
Writing TESTENV/lib/python2.7/site.py 
Writing TESTENV/lib/python2.7/orig-prefix.txt 
Writing TESTENV/lib/python2.7/no-global-site-packages.txt 
Creating parent directories for TESTENV/include 
Symlinking TESTENV/include/python2.7 
Creating TESTENV/bin 
New python executable in TESTENV/bin/python 
Changed mode of TESTENV/bin/python to 0755 
MacOSX Python framework detected 
Symlinking TESTENV/.Python 
Testing executable with TESTENV/bin/python -c "import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))" 
Got sys.prefix result: u'/Users/x/TESTENV' 
Please make sure you remove any previous custom paths from your /Users/x/.pydistutils.cfg file. 
Creating TESTENV/lib/python2.7/distutils 
Writing TESTENV/lib/python2.7/distutils/__init__.py 
Writing TESTENV/lib/python2.7/distutils/distutils.cfg 
Using existing distribute egg: /Users/x/Library/Python/2.7/site-packages/virtualenv_support/distribute-0.6.27.tar.gz 
Installing distribute... 
    Running command /Users/x/TESTENV/bin/python -c "#!python 
\"\"\"Bootstra... main(sys.argv[1:]) 
" -v --always-copy -U distribute 
    Extracting in /var/folders/97/bds2slvx25s53xx1b_strvfs4xdq4b/T/tmpbqvjfq 
    Now working in /var/folders/97/bds2slvx25s53xx1b_strvfs4xdq4b/T/tmpbqvjfq/distribute-0.6.27 
    Installing Distribute 
    running install 
    Checking .pth file support in /Users/x/Library/Python/2.7/site-packages/ 
    /Users/x/TESTENV/bin/python -E -c pass 
    TEST FAILED: /Users/x/Library/Python/2.7/site-packages/ does NOT support .pth files 
    error: bad install directory or PYTHONPATH 

    You are attempting to install a package to a directory that is not 
    on PYTHONPATH and which Python does not read ".pth" files from. The 
    installation directory you specified (via --install-dir, --prefix, or 
    the distutils default setting) was: 

     /Users/x/Library/Python/2.7/site-packages/ 

    and your PYTHONPATH environment variable currently contains: 

     '' 

    Here are some of your options for correcting the problem: 

    * You can choose a different installation directory, i.e., one that is 
    on PYTHONPATH or supports .pth files 

    * You can add the installation directory to the PYTHONPATH environment 
    variable. (It must then also be on PYTHONPATH whenever you run 
    Python and want to use the package(s) you are installing.) 

    * You can set up the installation directory to support ".pth" files by 
    using one of the approaches described here: 

    http://packages.python.org/distribute/easy_install.html#custom-installation-locations 

    Please make the appropriate changes for your system and try again. 
    Something went wrong during the installation. 
    See the error message above. 
...Installing distribute...done. 
Installing existing pip-1.1.tar.gz distribution: /Users/x/Library/Python/2.7/site-packages/virtualenv_support/pip-1.1.tar.gz 
Installing pip... 
    Running command /Users/x/TESTENV/bin/python -x /Users/x/TESTENV/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz 
    /Users/x/TESTENV/bin/python: can't open file '/Users/x/TESTENV/bin/easy_install': [Errno 2] No such file or directory 
    Complete output from command /Users/x/TESTENV/bin/python -x /Users/x/TESTENV/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz: 
    /Users/x/TESTENV/bin/python: can't open file '/Users/x/TESTENV/bin/easy_install': [Errno 2] No such file or directory 
---------------------------------------- 
...Installing pip...done. 
Traceback (most recent call last): 
    File "/Users/x/bin/virtualenv", line 9, in <module> 
    load_entry_point('virtualenv==1.7.2', 'console_scripts', 'virtualenv')() 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 942, in main 
    never_download=options.never_download) 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1054, in create_environment 
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download) 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 654, in install_pip 
    filter_stdout=_filter_setup) 
    File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1020, in call_subprocess 
    % (cmd_desc, proc.returncode)) 
OSError: Command /Users/x/TESTENV/bin/python -x /Users/x/TESTENV/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz failed with error code 2 

Il ressemble à mon PYTHONPATH est en quelque sorte occulté dans l'environnement virtualenv tente de construire. Cela devrait être facile à réparer, non?

+0

Vous dites "tué mon environnement Python" mais vous n'expliquez pas cet environnement. En utilisant le fournisseur Python? Brew installé? Autre? – aclark

+0

Avant la mise à niveau, pip et virtualenv travaillaient en utilisant le système par défaut Python. J'ai un certain nombre de virtualenvs existants qui fonctionnent bien, mais je ne peux pas créer de nouveaux virtualenvs. Je ne me souviens pas comment j'ai installé pip et virtualenv auparavant. – selfsimilar

Répondre

2

C'est un problème avec distutils. J'ai supprimé $ HOME/.pydistutils.cfg et ai couru sudo setup.py install pour obtenir la distribution au bon endroit, puis sudo setup virtualenv qui l'a placé dans le répertoire site-packages approprié pour la version MacPorts de Python 2.7. Maintenant, je peux exécuter virtualenv TestEnv sans aucun problème.

0

Je ne suis pas sûr que je n'ai pas testé mes pensées.

Le code suivant pour un paquet, installe le library at /x/lib/python2.x/site-packages et la scripts at /x/bin

python setup.py install prefix/x

Vous ne devriez pas faire python setup.py install --prefix /x/lib/python2.x/site-packages

Essayez également de voir les scripts pip et virtualenv utilisent-ils le bon binaire python. Le shebang dans les scripts vous le dira. sinon, ils peuvent utiliser une distribution différente.

#!/usr/local/bin/python 
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.1','console_scripts','pip' 
__requires__ = 'pip==1.1' 
import sys 
from pkg_resources import load_entry_point 

sys.exit(
    load_entry_point('pip==1.1', 'console_scripts', 'pip')() 
) 

Le script ci-dessus fait référence à une distribution avec les binaires situés à /usr/local/bin/python.

Sur un système, vous pouvez coexister plusieurs distributions de python.

1

Je fais face au même problème lors de l'installation du centos sur VPS et mon mac.

J'ai trouvé la solution, Si vous n'exportez pas du code après l'installation de pépin il se posera.L'étape de la solution est:

commande d'écriture en ligne: qui pip show: '/ usr/bin/pip' comme celui-ci alors exécuté ce code sur la ligne de commande: export PATH = "/ usr/bin: $ PATH"

J'espère que cela fonctionnera aussi pour vous