Utwórz puste środowisko Conda

86

Mogę stworzyć nowe środowisko Conda z programem biopythonz tym:

conda create --name snowflakes biopython

A jeśli nie chcę instalować żadnego programu? Wygląda na to, że nie mogę tego zrobić:

» 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
źródło
2
Zwykle chcesz przynajmniej zainstalować Pythona. Jeśli nie chcesz nawet wersji Pythona, możesz oszukać condę, ręcznie tworząc puste środowisko za pomocąmkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel
nie ma to dla mnie sensu. dlaczego nie możemy stworzyć środowiska bez opakowania?
cammil
1
Co dokładnie powstaje, gdy tworzone jest „puste środowisko”?
user3731622
@cammil Nie jestem pewien, czy zmieniło się to w nowszych wersjach Conda ponieważ kiedy tworzę nowe środowisko bez określania czegokolwiek, instaluje zero pakietów conda create --n my_env ## tworzy my_env z zainstalowanymi 0 pakietami Ale kiedy określam python na przykład python = 3.7, a następnie instaluje podstawowe zależności. conda create --n my_env2 python = 3.7 źródło aktywuj my_env2 lista conda ## lista około 10 zainstalowanych pakietów
Light_B

Odpowiedzi:

213

Możesz podać nazwę pakietu po prostu „python”, aby uzyskać podstawową, pustą instalację.

conda create --name myenv python
conda create --name myenv python=3.4
joelion
źródło
14
dzięki. Nie jestem pewien, dlaczego nie jest to z przodu i pośrodku strony z listą pakietów Anaconda
Joelion
jest to niezwykle przydatne, wielkie dzięki! Zaktualizowałem również mój arkusz kalkulacyjny Conda, aby to uwzględnić i podkreślić (na wypadek, gdyby było to pomocne dla innych: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ
2
Jestem na Conda w wersji 4.3.23 i "conda create --name myenv" tworzy nowe środowisko bez pakietów, nawet Pythona. Używa Pythona ze środowiska roota Conda.
Varun
Kiedy to robię, conda instaluje mutex libgcc, setuptools, pip i wheel w nowym środowisku, więc nie jest to dokładnie „minimalne”?
Adrian,
@Adrian to mniej więcej tak minimalne, jak to tylko możliwe, jeśli faktycznie chcesz zrobić cokolwiek w tym środowisku, na przykład zainstalować inne pakiety ...
joelion
35

Jeśli utworzyłeś create_default_packagesblok w swoim .condarcpliku, odpowiedź @ joelion zainstaluje te pakiety. Jeśli ich nie chcesz, użyj --no-default-packagesflagi. Na przykład:

conda create --name myenv python --no-default-packages
Farenorth
źródło
3
Kiedy próbuję tego, z pythonem = 2.7, instaluję kilka pakietów, takich jak libgcc-ng, certifi, libstdcxx-ng itp. Jak uniknąć ich instalacji?
Ethan
5

Aby stworzyć środowisko, które jest absolutnie puste, bez Pythona i / lub jakiegokolwiek innego domyślnego pakietu, po prostu utwórz nowy folder w envskatalogu Anacondainstalacji (w tym przykładzie Anaconda3) :.

~\Anaconda3\envs>mkdir empy_env

Przy pierwszej aktywacji tego środowiska tworzony jest katalog o nazwie Scriptsw systemie Windows, binw systemie Linux, zawierający kilka plików wsadowych. W chwili pisania tego posta działa to dla Anacondy w wersji 4.3.30 zarówno w systemie Windows, jak i Linux.

Zauważyłem, że @cel zasugerował to samo w pierwszym komentarzu do pytania, ale oczywiście nie zwrócił na to uwagi, na jaką zasługuje!

Reza Dodge
źródło
3

Oto jak stworzyć naprawdę puste (lekkie) conda_env z 0 pakietami:

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

utworzenie i zakończenie zajmie kilka sekund.

Aymen Alsaadi
źródło
Nie działa, to polecenie nadal wstępnie załadowało go z tonami pakietów, takich jak pylint scipyitp.
Cardin
@Cardin Nie, absolutnie nie. To polecenie nie będzie miało zainstalowanych żadnych pakietów. Możesz to sprawdzić, używając conda list , a zobaczysz, że nie ma pakietów.
Aymen Alsaadi
imgur.com/a/3AiDnyh okej, myślę, że technicznie masz rację. Ale intencja OP wydaje się dotyczyć pakietów pip, a nie pakietów Conda. Ponieważ używając odpowiedzi joeliona (która jest akceptowaną odpowiedzią), tworzy środowisko conda z minimalnymi zależnościami pip.
Cardin
Myślę, że kontekst tego pytania dotyczył tego, jak stworzyć puste środowisko conda. (0 pakietów conda). I moja odpowiedź to dostarczała!
Aymen Alsaadi
1
Masz rację, wskazywał on na basepythona w zmiennych env PATH, zamiast na my_envpython - dlatego były tam pakiety pip. Błędnie założyłem, że zrobili klonowanie dowiązań symbolicznych, dlatego nie zrozumiałem, dlaczego pakiety 200 pip są tak szybkie. Dzięki!
Cardin