สร้างสภาพแวดล้อม conda ที่ว่างเปล่า


87

ฉันสามารถสร้างสภาพแวดล้อม conda ใหม่ด้วยโปรแกรมbiopythonด้วยสิ่งนี้:

conda create --name snowflakes biopython

จะทำอย่างไรหากไม่ต้องการติดตั้งโปรแกรมใด ๆ ดูเหมือนว่าฉันไม่สามารถทำได้:

» 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
โดยปกติคุณต้องติดตั้ง python เป็นอย่างน้อย หากคุณไม่ต้องการเวอร์ชัน python คุณสามารถโกง conda ได้ด้วยการสร้างสภาพแวดล้อมที่ว่างเปล่าโดยใช้mkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel

ไม่สมเหตุสมผลกับฉัน ทำไมเราไม่สามารถสร้าง env แบบไม่มีแพ็คเกจได้?
cammil

1
อะไรถูกสร้างขึ้นเมื่อสร้าง "สภาพแวดล้อมว่างเปล่า"
user3731622

@cammil ไม่แน่ใจว่าสิ่งนี้มีการเปลี่ยนแปลงใน conda เวอร์ชันที่ใหม่กว่าหรือไม่เพราะเมื่อฉันสร้างสภาพแวดล้อมใหม่โดยไม่ได้ระบุอะไรเลยมันจะติดตั้งแพ็กเกจเป็นศูนย์ conda create --n my_env ## สร้าง my_env โดยติดตั้งแพ็คเกจ 0 แต่เมื่อฉันระบุ python เวอร์ชันตัวอย่างเช่น python = 3.7 จากนั้นจะติดตั้งการอ้างอิงพื้นฐาน conda create --n my_env2 python = 3.7 source เปิดใช้งาน my_env2 conda list ## list ประมาณ 10 แพ็คเกจที่ติดตั้ง
Light_B

คำตอบ:


218

คุณสามารถตั้งชื่อแพ็กเกจเพียง "python" เพื่อรับฐานติดตั้งว่างเปล่า

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

14
ขอบคุณ. ฉันไม่แน่ใจว่าเหตุใดจึงไม่อยู่ด้านหน้าและตรงกลางในหน้ารายการแพ็คเกจ Anaconda
joelion

สิ่งนี้มีประโยชน์อย่างเหลือเชื่อขอบคุณมาก! ฉันยังอัปเดตแผ่นบันทึก Conda ของฉันเพื่อรวมและเน้นสิ่งนี้ (ในกรณีที่เป็นประโยชน์กับผู้อื่น github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ

2
ฉันใช้ conda เวอร์ชัน 4.3.23 และ "conda create --name myenv" สร้างสภาพแวดล้อมใหม่โดยไม่มีแพ็คเกจหรือแม้แต่ python ใช้ python จากสภาพแวดล้อม conda root
วรุณ

เมื่อฉันทำเช่นนี้ conda จะติดตั้ง libgcc mutex, setuptools, pip และ wheel ในสภาพแวดล้อมใหม่ดังนั้นมันจึงไม่ "น้อยที่สุด" อย่างแน่นอน
เอเดรียน

@ เอเดรียนที่น้อยที่สุดเท่าที่จะเป็นไปได้ถ้าคุณต้องการทำอะไรในสภาพแวดล้อมนั้นจริง ๆ เช่นติดตั้งแพ็คเกจอื่น ๆ ...
joelion

36

หากคุณได้สร้างไฟล์ create_default_packagesบล็อกใน.condarcไฟล์คำตอบของ @ joelion จะติดตั้งแพ็คเกจเหล่านั้น หากคุณไม่ต้องการสิ่งนั้นให้ใช้--no-default-packagesแฟล็ก ตัวอย่างเช่น:

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

4
เมื่อฉันลองใช้ python = 2.7 มันกำลังติดตั้ง pkgs หลายตัวเช่น libgcc-ng, certifi, libstdcxx-ng ฯลฯ จะหลีกเลี่ยงการติดตั้งสิ่งเหล่านี้ได้อย่างไร
Ethan

5

หากต้องการสร้างสภาพแวดล้อมที่ว่างเปล่าโดยไม่มี python และ / หรือแพ็คเกจเริ่มต้นอื่น ๆ เพียงแค่สร้างโฟลเดอร์ใหม่ใน envsไดเรกทอรีในAnacondaการติดตั้งของคุณ(Anaconda3 ในตัวอย่างนี้):.

~\Anaconda3\envs>mkdir empy_env

ในครั้งแรกที่คุณเปิดใช้งานสภาพแวดล้อมนี้จะมีการสร้างไดเร็กทอรีที่มีชื่อScriptsใน Windows binใน Linux พร้อมกับไฟล์แบตช์สองสามไฟล์ ในช่วงเวลาของโพสต์นี้ใช้งานได้กับ Anaconda เวอร์ชัน 4.3.30 ทั้งใน Windows และ Linux

ฉันสังเกตเห็นว่า @cel ได้แนะนำสิ่งเดียวกันในความคิดเห็นแรกภายใต้คำถาม แต่เห็นได้ชัดว่ามันไม่ได้รับความสนใจเท่าที่ควร!


4

นี่คือวิธีสร้าง conda_env ที่ว่างเปล่าอย่างแท้จริงด้วยแพ็คเกจ 0:

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

จะใช้เวลาไม่กี่วินาทีในการสร้างและเสร็จสิ้น


ใช้งานไม่ได้คำสั่งนั้นยังคงโหลดไว้ล่วงหน้าด้วยแพ็คเกจมากมายเช่นpylint scipyฯลฯ
Cardin

@Cardin ไม่มีไม่ได้อย่างแน่นอน คำสั่งนี้จะไม่มีการติดตั้งแพ็คเกจ คุณสามารถตรวจสอบได้โดยใช้conda list คุณจะเห็นว่าไม่มีแพ็คเกจ
Aymen Alsaadi

imgur.com/a/3AiDnyhโอเคฉันคิดว่าคุณถูกต้องในทางเทคนิค แต่ความตั้งใจของ OP ดูเหมือนจะเกี่ยวกับแพ็คเกจ pip ไม่ใช่แพ็คเกจ conda เนื่องจากใช้คำตอบของ joelion (ซึ่งเป็นคำตอบที่ยอมรับ) จึงสร้าง conda env ที่มีการอ้างอิง pip น้อยที่สุด
Cardin

1
ฉันคิดว่าบริบทของคำถามนี้เกี่ยวกับวิธีสร้าง conda env ที่ว่างเปล่า (0 แพคเกจ conda) และคำตอบของฉันก็ส่งมอบสิ่งนั้น!
Aymen Alsaadi

1
คุณพูดถูกมันชี้ไปที่basepython ในตัวแปร PATH env แทนที่จะเป็นmy_envpython นั่นคือสาเหตุที่แพ็คเกจ pip อยู่ที่นั่น ฉันคิดผิดว่าพวกเขาทำการโคลนนิ่ง symlink ซึ่งเป็นสาเหตุที่ฉันจับไม่ได้ว่าทำไมแพ็คเกจ 200 pip ถึงเร็วขนาดนั้น ขอบคุณ!
Cardin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.