Ich bin neu in Python. Ich benutze die Anaconda 4.1.1 (Python 3.5.2) Distribution auf Ubuntu. Ich fing an, an einem Projekt zu arbeiten, das cx_Oracle
verwendet. O könnte natürlich cx_Oracle
mit pip
installieren.Getting cx_Oracle mit korrektem Fall mit conda
pip install cx_Oracle
Aber jeder scheint zu sagen, dass Anacondaâs conda
ist ein viel besserer Paket-Manager, Manager virtuelle Umgebung und die Abhängigkeit Manager, dass pip
und virtualenv
zusammen. Ich würde es vorziehen, einfach conda
zu verwenden, um alles zu verwalten.
Also habe ich eine requirements.txt
Datei (einige meiner Teamkollegen werden immer noch mit pip
und virtualenv
) mit der folgenden Zeile. (Ich möchte Python Unterstützung 3.5, also muss ich cx_Oracle
5.2.1, die aktuelle neueste.)
cx_Oracle==5.2.1
Dann sage ich conda
eine virtuelle Umgebung foobar
zu erstellen:
conda create -n foobar --file requirements.txt
Dies scheitert; leider cx_Oracle
5.2.1 ist noch nicht im Continuum conda Repository (obwohl das halbe Jahr seit seiner Veröffentlichung vergangen ist). Es gibt jedoch mehrere Kanäle (z.B. mgckind
), die vorgeben, Version 5.2.1 zu liefern. Es gibt nur ein Problem: Alle Kanäle liefern cx_oracle
und nicht cx_Oracle
(beachten Sie die Falldifferenz). So wird dies nicht funktionieren:
conda create -n foobar -c mgckind --file requirements.txt
Auch wenn ich über einen Kanal, wie im Beispiel angeben, und obwohl requirements.txt
deutlich cx_Oracle
sagt conda
nach unten bringt cx_oracle
mit einem Klein o
. Da bei Python-Modulimports die Groß-/Kleinschreibung beachtet wird, schlagen alle meine Tests fehl, da sie cx_Oracle
nicht mit einem Großbuchstaben O
finden können.
Fehle ich etwas einfach hier, weil ich Python neu bin? Oder ist Anaconda wirklich beides hinter den Zeiten und inkompatibel mit cx_Oracle
, was bedeutet, dass ich pip install
verwenden und es von PyPI herunterbringen muss?
Wenn es wirklich einen Fallunterschied gibt, ist diese Situation auf Conda vs PiPY üblich? Ist es eine Conda-Richtlinie, Dinge nur in Kleinbuchstaben zu benennen? Wie gehen andere mit der Diskrepanz um?
Können Sie das Modul überhaupt importieren? Wenn ja, haben Sie versucht, 'import cx_Oracle' zu ändern, um 'cx_oracle als cx_Oracle' zu importieren? – Abdou
Ich habe nicht versucht, den Code zu ändern. Offensichtlich ist dies ein letzter Ausweg, aber es vermeidet das Problem. Meine Kollegen benutzen pip, wie ich bereits erwähnt habe --- wird der Code kaputt gehen, wenn ich ihn ändere, aber dann downloaden sie 'cx_Oracle' mit' pip'? –
Verwendung Ausnahmebehandlung: 'versuchen: Import cx_Oracle außer Import: Import cx_Oracle als cx_Oracle' – Abdou