wake-up-neo.com

Was ist der Unterschied zwischen der virtuellen Umgebung von PyCharm und der Anaconda-Umgebung?

Wenn ich ein neues Projekt in PyCharm erstelle, wird eine neue virtuelle Umgebung erstellt. Ich habe gelesen, dass beim Ausführen von Python-Skripts sie in dieser Umgebung statt mit der Systemumgebung mit dem Interpreter ausgeführt werden. Wenn ich also einige Pakete installieren muss, kann ich sie nur in dieser Umgebung und nicht in der Systemumgebung installieren. Das ist cool.

Ich habe auch über Anaconda Environment gelesen. Wenn ich eine neue Anaconda-Umgebung erstelle, wird neben der Systemumgebung eine neue Umgebung erstellt. Für meine Projekte kann ich diese Umgebung verwenden und nur die erforderlichen Pakete hier und nicht in der Hauptsystemumgebung installieren.

Meine Frage ist nun, was ist der Unterschied zwischen einer von PyCharm erstellten virtuellen Umgebung und der von Anaconda erstellten Umgebung? Die von PyCharm erstellte virtuelle Umgebung beträgt 15-20 MB, während die von Anaconda 90 MB beträgt. Also muss es einen Unterschied geben. Außerdem habe ich gelesen, dass ich meinen PyCharm so konfigurieren kann, dass er den Anaconda Environment-Interpreter verwendet. 

Was ist also der Unterschied zwischen den von PyCharm und Anaconda entwickelten Umgebungen?

8
Nagabhushan S N

Ich muss klarstellen, dass anaconda nur eine Sammlung ist. Der echte Umgebungsmanager ist conda. Hier ist miniconda. Es enthält nur die zum Verwalten der Umgebung erforderlichen Teile anstelle einer vollständigen anaconda-Sammlung.

conda ist nicht nur ein einfacher Python-Paketmanager, sondern ein systemweiter Paketmanager. Es hilft Ihnen, das Paket ohne Schmerzen zu installieren. Ein klassisches Beispiel ist die Installation von numpy unter Windows. Ohne conda ist es wirklich schwierig, da ein bestimmter C-Compiler benötigt wird, der schwer zu bekommen ist. Mit conda können Sie numpy mit nur einem Befehl conda install numpy installieren. Compilerproblem und C-Abhängigkeiten werden automatisch gelöst.


Wenn Sie also in Pycharm eine Umgebung erstellen, werden Sie gefragt, welche Umgebung Sie erstellen möchten: Virtualenv Environment, Conda Environmentoder Pipenv Environment. Ich wähle normalerweise Pipenv Environment, da dieses Env an das aktuelle Projekt gebunden ist und eine Sperrdatei erzeugen kann.

In diesem Fall glaube ich, dass Sie es jetzt verstehen können: Es gibt kein Env mit dem Namen "Created by PyCharm" oder "Anaconda". Es gibt nur Envs mit dem Namen "erstellt von Virtualenv, Conda oder Pipenv". Und Pycharm verwendet und verpackt nur einen von ihnen.


Was ist also der Unterschied zwischen Conda Environment und Virtualenv Environment (Pipenv Environment ist im Wesentlichen ein Virtualenv Environment mit ausgefeilten pip)? Der Unterschied ergibt sich aus ihren unterschiedlichen Zwecken.

Conda Environment ist normalerweise für "Python-Benutzer". Sie verwenden Python als Werkzeug für andere Arbeiten wie Web-Crawlen, Data Mining und Bildverarbeitung. Sie wissen nicht viel über Python (da sie nicht wissen müssen), daher ist conda so automatisch wie möglich. Ihre Aufgaben können sich überall auf dem Computer befinden, so dass sich die von conda erstellten Umgebungen in benutzerweiten Verzeichnissen befinden. Und manchmal benötigen sie andere Python-Versionen. Dies kann in conda durchgeführt werden, nicht jedoch in virtualenv.

Virtualenv Environment steht normalerweise für "Python-Entwickler". Sie verwenden Python, um Anwendungen oder Pakete zu erstellen. Die von Virtualenv erstellten Umgebungen befinden sich normalerweise im Verzeichnis des aktuellen Projekts. So können Sie eine Umgebung für jede Anwendung erstellen und Abhängigkeiten problemlos verwalten.

Um zusammenzufassen:

Conda Environment:

  1. Verwalten Sie nicht nur Python-Pakete, sondern auch verschiedene Python-Versionen und systemweite Abhängigkeiten.
  2. Envs befinden sich in benutzerweiten Verzeichnissen.
  3. Weniger envs.

Virtualenv Environment:

  1. Verwalten Sie Python-Pakete. Der Hauptzweck besteht darin, Abhängigkeiten für jede Anwendung zu segmentieren.
  2. Envs befinden sich normalerweise in projektweiten Verzeichnissen. (Obwohl pipenv standardmäßig in benutzerbezogenen Verzeichnissen env erstellt, denken viele Leute, dass Projektverzeichnisse der Standard sein sollten.)
  3. Viel mehr Umgebung (eine neue Umgebung für jede Anwendung)

Für mich benutze ich beide. Ich verwende conda, um verschiedene Python-Versionen zu verwalten, und verwende pipenv, um Abhängigkeiten für meine Anwendungen zu verwalten.

6
Sraw

Beide Umgebungen basieren auf virtualenv von python. Sie können sie unabhängig voneinander verwenden und Pakete innerhalb des Pakets konfigurieren (oder installieren), ohne sich Sorgen über Konflikte machen zu müssen. Dies ist das Wesentliche von Virtualenv. 

Anaconda ist eine Python-Distribution (genau wie Linux-Distributionen), die standardmäßig andere Pakete hinzufügt, je nachdem, was Entwickler brauchen. Daher ist die Installation größer als bei der Installation von Vanilla-Python. Aus diesem Grund ist die virtuelle Umgebung ziemlich groß. 

Pycharm ist eine IDE, die die Virtualenv-Funktion von Python unterstützt. So kann es für Sie erstellt werden, wenn Sie möchten. Es kann eine einfache Python-Distribution zum Erstellen verwendet werden, so dass diese eine kleinere Größe hat, als wenn Sie eine Distro wie Anaconda verwenden, wie Sie bemerkt haben. 

Das Größenproblem ist nicht spezifisch für Anaconda. Wenn Sie alle von anaconda conda list für Sie installierten Pakete auflisten und manuell in der "leichtgewichtigen" virtuellen Umgebung installieren, wird die Größe ebenfalls steigen. Ich glaube, du verstehst meinen Punkt.

0