Erstellen Sie eine leere Conda-Umgebung

84

Ich kann eine neue Conda-Umgebung mit folgendem Programm erstellen biopython:

conda create --name snowflakes biopython

Was ist, wenn ich kein Programm installieren möchte? Es scheint, dass ich das nicht kann:

» conda create --name tryout
Error: too few arguments, must supply command line package specs or --file

You can specify one or more default packages to install when creating
an environment.  Doing so allows you to call conda create without
explicitly providing any package names.

To set the provided packages, call conda config like this:

    conda config --add create_default_packages PACKAGE_NAME
blueFast
quelle
2
Normalerweise möchten Sie mindestens Python installieren. Wenn Sie nicht einmal eine Python-Version wollen, können Sie conda betrügen, indem Sie manuell eine leere Umgebung mitmkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel
macht für mich keinen Sinn. Warum können wir keine paketlose Umgebung erstellen?
Cammil
1
Was genau wird erstellt, wenn eine "leere Umgebung" erstellt wird?
user3731622
@cammil Ich bin mir nicht sicher, ob sich dies in den neueren Versionen von conda geändert hat, da beim Erstellen einer neuen Umgebung ohne Angabe von Nullen keine Pakete installiert werden. conda create --n my_env ## erstellt my_env mit 0 installierten Paketen. Wenn ich jedoch eine Python spezifiziere Version zum Beispiel Python = 3.7, dann werden die grundlegenden Abhängigkeiten installiert. conda create --n my_env2 python = 3.7 source enable my_env2 conda list ## listet ungefähr 10 installierte Pakete auf
Light_B

Antworten:

207

Sie können einen Paketnamen von nur "Python" angeben, um eine leere Basisinstallation zu erhalten.

conda create --name myenv python
conda create --name myenv python=3.4
Joelion
quelle
14
Vielen Dank. Ich bin mir nicht sicher, warum dies nicht vorne auf der Anaconda-Paketlistenseite steht
Joel
Das ist unglaublich nützlich, vielen Dank! Ich habe auch mein Conda-Chetsheet aktualisiert, um dies aufzunehmen und hervorzuheben (falls es für andere hilfreich ist: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ
2
Ich bin auf conda Version 4.3.23 und "conda create --name myenv" erstellt eine neue Umgebung ohne Pakete, nicht einmal Python. Es verwendet Python aus der Conda-Root-Umgebung.
Varun
Wenn ich das mache, installiert conda libgcc Mutex, Setuptools, Pip und Wheel in der neuen Umgebung, also nicht genau "minimal", oder?
Adrian
@ Adrian, das ist so minimal wie möglich, wenn Sie tatsächlich etwas in dieser Umgebung tun möchten , wie andere Pakete installieren ...
Joel
32

Wenn Sie einen create_default_packagesBlock in Ihrer .condarcDatei erstellt haben, werden diese Pakete durch die Antwort von @ joelion installiert. Wenn Sie diese nicht möchten, verwenden Sie die --no-default-packagesFlagge. Beispielsweise:

conda create --name myenv python --no-default-packages
farenorth
quelle
3
Wenn ich dies mit python = 2.7 versuche, werden mehrere pkgs wie libgcc-ng, certifi, libstdcxx-ng usw. installiert. Wie vermeide ich die Installation dieser?
Ethan
4

Um eine Umgebung zu erstellen, die absolut leer ist, ohne Python und / oder ein anderes Standardpaket, erstellen Sie einfach einen neuen Ordner im envsVerzeichnis Ihrer AnacondaInstallation (in diesem Beispiel Anaconda3):

~\Anaconda3\envs>mkdir empy_env

Wenn Sie diese Umgebung zum ersten Mal aktivieren, wird ein Verzeichnis mit dem Namen ScriptsWindows angezeigt.bin Linux mit einigen Batchdateien erstellt. Zum Zeitpunkt dieses Beitrags funktioniert dies für Anaconda Version 4.3.30 sowohl unter Windows als auch unter Linux.

Ich habe bemerkt, dass @cel im ersten Kommentar unter der Frage dasselbe vorgeschlagen hat, aber offensichtlich hat es nicht die Aufmerksamkeit erhalten, die es verdient!

Reza Dodge
quelle
1

So erstellen Sie eine wirklich leere (helle) conda_env mit 0 Paketen:

conda create --name myenv --no-default-packages

Das Erstellen und Fertigstellen dauert einige Sekunden.

Aymen Alsaadi
quelle
Funktioniert nicht, dieser Befehl hat es immer noch mit Tonnen von Paketen wie pylint scipyusw. vorinstalliert
Cardin
@ Cardin Nein, absolut nicht. Bei diesem Befehl sind keine Pakete installiert. Sie können dies überprüfen, indem Sie feststellen, dass conda list keine Pakete vorhanden sind.
Aymen Alsaadi
imgur.com/a/3AiDnyh okay, ich denke du hast technisch Recht. Aber OPs Absicht scheint sich auf Pip-Pakete zu beziehen, nicht auf Conda-Pakete. Durch die Verwendung der Antwort von Joelion (die akzeptierte Antwort) wird eine Conda-Umgebung mit minimalen Pip-Abhängigkeiten erstellt.
Cardin
Ich denke, der Kontext dieser Frage war, wie man eine leere Conda Env erstellt. (0 Conda-Pakete). Und meine Antwort war, das zu liefern!
Aymen Alsaadi
1
Sie haben Recht, es zeigte auf basePython in PATH env-Variablen anstatt auf my_envPython - deshalb waren die Pip-Pakete dort. Ich hatte fälschlicherweise angenommen, dass sie Symlink-Klonen durchgeführt haben, weshalb ich nicht verstanden habe, warum 200 Pip-Pakete so schnell waren. Vielen Dank!
Cardin