python-2.7 - license - setup py debug




Simbolo non trovato:__PyCodecInfo_GetIncrementalDecoder (8)

Dall'aggiornamento da Homebrew Python 2.7.11 (da 2.7.10) improvvisamente non sono in grado di testare la registrazione del mio pacchetto su PyPi dalla console IDE di PyCharm.

In esecuzione (come "strumento esterno")

python -B setup.py register -r pypitest

Adesso capisco

Traceback (most recent call last):
  File "setup.py", line 22, in <module>
    from setuptools import setup
  File "/usr/local/lib/python2.7/site-packages/setuptools/__init__.py", line 12, in <module>
    from setuptools.extension import Extension
  File "/usr/local/lib/python2.7/site-packages/setuptools/extension.py", line 8, in <module>
    from .dist import _get_unpatched
  File "/usr/local/lib/python2.7/site-packages/setuptools/dist.py", line 16, in <module>
    from setuptools.depends import Require
  File "/usr/local/lib/python2.7/site-packages/setuptools/depends.py", line 6, in <module>
    from setuptools import compat
  File "/usr/local/lib/python2.7/site-packages/setuptools/compat.py", line 17, in <module>
    import httplib
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 80, in <module>
    import mimetools
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/mimetools.py", line 6, in <module>
    import tempfile
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 32, in <module>
    import io as _io
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
  Referenced from: /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
  Expected in: flat namespace
 in /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

Process finished with exit code 1

Non sono sicuro di come procedere. Ottengo questo problema solo se eseguo dalla console del mio IDE. Se lo faccio direttamente dalla riga di comando del sistema (Terminale su OS X) non ho problemi.

OS X 10.11.3; Homebrew Python 2.7.11; PyCharm 5.0.3


Ho avuto lo stesso problema quando ho provato ad usare PyCharm. Risolto impostando "interprete python" nella configurazione del progetto in modo che puntasse all'env virtuale python che volevo usare, che era un env Anaconda. In qualche modo nel percorso dell'interprete mancava la porzione "anaconda" di ~ /.../ anaconda /.../_ io.so. Non è necessario disinstallare anaconda.


Ho avuto lo stesso problema, è stato risolto con successo semplicemente sostituendo il file _io.so.

sudo find / -name _io.so

copia il percorso del file _io.so che NON appartiene a python-2.7.11. Ad esempio, copia il percorso di _io.so che si trova in python-2.7.5: /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib- dynload / _io.so

Sostituisci il file /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so con il file _io.so che hai appena trovato.


Ho risolto questo problema rimuovendo il link simbolico che era in /usr/local/bin e copiando il vero binario python, a cui puntava detto link, lì.


Non posso aggiungere commenti (?), Quindi solo per condividere la mia exp., Il downgrade a 2.7.10 funziona da me.


Questo è successo quando avevo già provato a creare un file venv in una cartella e, per errore, stavo provando a inizializzarne un secondo! Quindi ho appena rimosso la directory venv ed eseguito nuovamente il comando. Molto probabilmente questa non è la risposta a questa soluzione, ma la ricerca del mio errore mi ha portato qui, quindi potrebbe aiutare alcuni altri che sono bloccati.


Reinstalla python.

brew unlink python && brew reinstall python

Proteggi il percorso

export PYTHONPATH=$PYTHONPATH:/usr/local/bin/

BACKUP e modifica dell'ordine dei file "percorsi".

sudo nano /etc/paths

sembra, nell'ordine dei percorsi, è decisivo eseguire correttamente Python. Nel mio caso, il risultato è stato:

#sudo nano /etc/paths
  /usr/bin  
  /usr/local/bin
  /bin
  /usr/sbin
  /sbin

Sul mio mac, il percorso è così.

$ which python
    /usr/local/bin/python

Ora posso eseguire entrambi:

$ /usr/local/bin/python -c "import io"
$ python -c "import io"

Secondo https://github.com/klen/python-mode/issues/634 :

Ho avuto lo stesso problema, ma risolto con successo. Nel mio caso ho compilato python e vim con homebrew, quando PYTHON_PATH è stato specificato e impostato su uno dei miei ambienti di sviluppo, dove avevo anche alcune librerie, incluso io. La soluzione era semplice: apri un nuovo terminale, assicurati di non avere PYTHON_PATH personalizzato, disinstalla python, disinstalla vim. Reinstalla entrambi.

e

Problema risolto.

Culprit è l'aggiornamento da Python 2.7.10 a 2.7.11.

Se si utilizza il controllo del pacchetto conda, eseguire semplicemente "conda install python = 2.7.10" per risolvere questo problema.

Questo non dà però la causa principale. Dato che ciò accade con _io , questo sembra un bug in Python 2.7.11 (improbabile, ci sarebbe una protesta su scala mondiale e una correzione rapida se lo fosse) o qualche bug di packaging o mancata corrispondenza della versione specificamente con la versione homebrew (e forse alcuni anche correlati).

Prova a import _io nella console e, se riesce, controlla se è stato caricato dallo stesso percorso.


Un'altra soluzione rapida se non ti dispiace attenersi a Python 2.7.10 è quella di specificare il percorso dell'eseguibile dell'interprete Python che verrà utilizzato per virtualenv. Su OSX quel percorso è generalmente /usr/bin/python :

virtualenv venv --python=/usr/bin/python




setuptools