2016-03-25 19 views
19

È possibile ottenere importazioni per i sei moduli per funzionare in pycharm? Mi rendo conto che il modulo fa giocare con le importazioni che confondono pycharm ma speravo che ci fosse un qualche tipo di soluzione alternativa.Ottenere sei e sei passaggi per completare automaticamente i moduli in pycharm

Per esempio, mi piacerebbe quanto segue per funzionare correttamente in PyCharm o IntelliJ ::

from six.moves import BaseHTTPServer 

risposta

3

Le importazioni sono dinamiche in modo PyCharm non può fare alcuna analisi statica del codice per determinare il tipo di informazioni .

Pycharm aggira questo per linguaggi come javascript utilizzando file di definizione di tipo statico (Impostazioni -> Lingue & Framework -> Javascript -> Librerie).

Questo è l'equivalente python: https://www.jetbrains.com/help/pycharm/2016.2/using-python-skeletons.html - un insieme parallelo di file python con esportazioni statiche che consentono l'analisi statica.

Al momento attuale le definizioni scheletro sembra essere davvero una prova di concetto in quanto sono molto sparse (non c'è six, e mentre un modulo django esiste è quasi vuoto - non v'è alcuna django.utils.six.moves che si potrebbe semplicemente copiare). È possibile aggiungere manualmente tutte le esportazioni six.moves ma questo sarebbe uno sforzo non banale.

Se avete voglia di provare a modificare i file di scheletro, su OSX:

cd ~/Library/Preferences/PyCharm2016.2 git clone https://github.com/JetBrains/python-skeletons.git e modificare i file in là (anche se non sono mai stato realmente in grado di farlo per rilevare le mie modifiche)