Buat lingkungan conda kosong


87

Saya dapat membuat lingkungan conda baru, dengan program biopythondengan ini:

conda create --name snowflakes biopython

Bagaimana jika saya tidak ingin menginstal program apa pun? Sepertinya saya tidak bisa melakukan itu:

» 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

2
Biasanya Anda ingin setidaknya menginstal python. Jika Anda bahkan tidak menginginkan versi python, Anda dapat menipu conda dengan secara manual membuat lingkungan kosong menggunakanmkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel

tidak masuk akal bagiku. mengapa kita tidak bisa membuat env tanpa paket?
cammil

1
Apa sebenarnya yang dibuat ketika "lingkungan kosong" dibuat?
pengguna3731622

@cammil Tidak yakin apakah ini telah berubah di versi conda yang lebih baru karena ketika saya membuat lingkungan baru tanpa menentukan apa pun, ia menginstal paket nol conda create --n my_env ## membuat my_env dengan 0 paket terinstal Tetapi, ketika saya menentukan python versi misalnya python = 3.7 kemudian menginstal dependensi dasar. conda buat --n my_env2 python = 3.7 sumber aktifkan daftar konda my_env2 ## daftar sekitar 10 paket yang diinstal
Light_B

Jawaban:


218

Anda dapat memberikan nama paket hanya "python" untuk mendapatkan basis, instalasi kosong.

conda create --name myenv python
conda create --name myenv python=3.4

14
Terima kasih. Saya tidak yakin mengapa ini tidak berada di depan dan di tengah halaman daftar paket Anaconda
joelion

ini sangat berguna, terima kasih banyak! Saya juga memperbarui conda chetsheet saya untuk memasukkan dan menekankan hal ini (jika bermanfaat bagi orang lain: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ

2
Saya menggunakan conda versi 4.3.23 dan "conda create --name myenv" menciptakan lingkungan baru tanpa paket, bahkan python. Ini menggunakan python dari lingkungan root conda.
Varun

Ketika saya melakukan ini, conda menginstal libgcc mutex, setuptools, pip dan wheel di lingkungan baru, jadi tidak benar-benar "minimal" bukan?
Adrian

@Adrian itu seminimal mungkin jika Anda benar-benar ingin melakukan apa pun di lingkungan itu, seperti menginstal paket lain ...
joelion

36

Jika Anda telah membuat file create_default_packages blok di .condarcfile Anda , jawaban @ joelion akan menginstal paket-paket itu. Jika Anda tidak menginginkannya, gunakan --no-default-packagesbendera. Sebagai contoh:

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

4
Ketika saya mencoba ini, dengan python = 2.7, itu menginstal beberapa pkgs, seperti libgcc-ng, certifi, libstdcxx-ng, dll. Bagaimana cara menghindari instalasi ini?
Ethan

5

Untuk membuat lingkungan yang benar-benar kosong, tanpa python dan / atau paket default lainnya, cukup buat folder baru di envsdirektori di Anacondainstalasi Anda (Anaconda3 dalam contoh ini) :.

~\Anaconda3\envs>mkdir empy_env

Pertama kali Anda mengaktifkan lingkungan ini, sebuah direktori bernama Scripts di Windows, bindi Linux, dengan beberapa file batch dibuat. Pada saat posting ini berfungsi untuk Anaconda versi 4.3.30 baik di Windows dan Linux.

Saya perhatikan bahwa @cel telah menyarankan hal yang sama di komentar pertama di bawah pertanyaan itu, tetapi jelas itu tidak mendapat perhatian yang layak!


4

Ini adalah cara membuat conda_env yang benar-benar kosong (ringan) dengan 0 paket:

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

perlu beberapa detik untuk membuat dan menyelesaikannya.


Tidak berfungsi, perintah itu masih memuatnya dengan banyak paket seperti pylint scipy, dll.
Cardin

@Cardin Tidak, sama sekali tidak. Perintah ini tidak akan menginstal paket. Anda dapat memeriksanya dengan menggunakan conda list Anda akan melihat tidak ada paket.
Aymen Alsaadi

imgur.com/a/3AiDnyh oke, menurut saya Anda secara teknis benar. Tapi niat OP tampaknya tentang paket pip, bukan paket conda. Karena menggunakan jawaban joelion (yang merupakan jawaban yang diterima), itu membuat conda env dengan dependensi pip minimal.
Cardin

1
Saya pikir konteks pertanyaan ini adalah tentang bagaimana membuat sebuah conda env kosong. (0 paket conda). Dan jawaban saya menyampaikan itu!
Aymen Alsaadi

1
Anda benar, itu menunjuk ke base python di variabel PATH env, bukan my_envpython - itulah mengapa paket pip ada di sana. Saya salah berasumsi bahwa mereka melakukan kloning symlink, itulah sebabnya saya tidak mengerti mengapa paket 200 pip secepat itu. Terima kasih!
Cardin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.