Tạo môi trường chung cư trống


86

Tôi có thể tạo một môi trường chung cư mới, với chương trình biopythonnày:

conda create --name snowflakes biopython

Nếu tôi không muốn cài đặt bất kỳ chương trình nào thì sao? Có vẻ như tôi không thể làm điều đó:

» 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
Thông thường bạn muốn cài đặt ít nhất python. Nếu bạn thậm chí không muốn có một phiên bản python, bạn có thể lừa gạt conda bằng cách thủ công tạo ra một môi trường có sản phẩm nào sử dụngmkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel

không có ý nghĩa đối với tôi. tại sao chúng ta không thể tạo một env không có gói?
cammil

1
Chính xác thì điều gì được tạo ra khi một "môi trường trống" được tạo ra?
user3731622

@cammil Không chắc điều này có thay đổi trong các phiên bản mới hơn của conda hay không vì khi tôi tạo một môi trường mới mà không chỉ định bất kỳ điều gì, nó sẽ cài đặt không có gói conda create --n my_env ## create my_env với 0 gói được cài đặt. Tuy nhiên, khi tôi chỉ định một python phiên bản ví dụ python = 3.7 thì nó cài đặt các phụ thuộc cơ bản. conda tạo --n my_env2 python = 3,7 nguồn kích hoạt my_env2 danh sách conda ## danh sách khoảng 10 gói cài đặt
Light_B

Câu trả lời:


213

Bạn có thể đặt tên gói chỉ là "python" để có được bản cài đặt cơ sở, trống.

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

14
cảm ơn. Tôi không chắc tại sao điều này không ở phía trước và trung tâm trên trang danh sách gói Anaconda
joelion

điều này cực kỳ hữu ích, cảm ơn rất nhiều! Tôi cũng được cập nhật chetsheet conda tôi để bao gồm và nhấn mạnh điều này (trong trường hợp nó rất hữu ích cho người khác: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ

2
Tôi đang sử dụng phiên bản conda 4.3.23 và "conda create --name myenv" tạo ra một môi trường mới không có gói, thậm chí không có python. Nó sử dụng python từ môi trường gốc conda.
Varun

Khi tôi thực hiện việc này, conda cài đặt libgcc mutex, setuptools, pip và wheel trong môi trường mới, vì vậy không chính xác là "tối thiểu" phải không?
Adrian

@Adrian đó là về càng ít càng tốt nếu bạn thực sự muốn làm bất cứ điều gì trong môi trường đó, như cài đặt các gói khác ...
joelion

35

Nếu bạn đã tạo một create_default_packageskhối trong .condarctệp của mình , câu trả lời của @ joelion sẽ cài đặt các gói đó. Nếu bạn không muốn những điều đó, hãy sử dụng --no-default-packagescờ. Ví dụ:

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

3
Khi tôi đang thử điều này, với python = 2.7, nó đang cài đặt một số pkgs, như libgcc-ng, certifi, libstdcxx-ng, v.v. Làm thế nào để tránh cài đặt những pkgs này?
Ethan

5

Để tạo một môi trường hoàn toàn trống, không có python và / hoặc bất kỳ gói mặc định nào khác, chỉ cần tạo một thư mục mới trong thư mục trong cài đặt envscủa bạn Anaconda(Anaconda3 trong ví dụ này) :.

~\Anaconda3\envs>mkdir empy_env

Lần đầu tiên bạn kích hoạt môi trường này, một thư mục có tên Scriptstrong Windows, bintrong Linux, với một vài tệp hàng loạt được tạo. Tại thời điểm bài viết này, nó hoạt động cho Anaconda phiên bản 4.3.30 cả trong Windows và Linux.

Tôi nhận thấy rằng @cel đã đề xuất điều tương tự trong nhận xét đầu tiên dưới câu hỏi, nhưng rõ ràng là nó không nhận được sự chú ý xứng đáng!


3

Đây là cách tạo một conda_env thực sự trống (nhẹ) với 0 gói:

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

sẽ mất vài giây để tạo và hoàn tất.


Không hoạt động, lệnh đó vẫn được tải trước với hàng tấn gói như thế pylint scipy, v.v.
Cardin

@Cardin Không, hoàn toàn không. Lệnh này sẽ không có gói nào được cài đặt. Bạn có thể kiểm tra nó bằng cách sử dụng conda list bạn sẽ thấy không có gói.
Aymen Alsaadi

imgur.com/a/3AiDnyh được rồi, tôi nghĩ bạn đúng về mặt kỹ thuật. Nhưng ý định của OP dường như là về gói pip, không phải gói conda. Bởi vì sử dụng câu trả lời của joelion (là câu trả lời được chấp nhận), nó tạo ra một env conda với phụ thuộc pip tối thiểu.
Cardin

Tôi nghĩ bối cảnh của câu hỏi này là về cách tạo một env conda trống. (0 gói chung cư). Và câu trả lời của tôi là cung cấp điều đó!
Aymen Alsaadi

1
Bạn nói đúng, nó đã trỏ tới basepython trong các biến PATH env, thay vì my_envpython - đó là lý do tại sao các gói pip ở đó. Tôi đã nhầm tưởng rằng họ đã nhân bản liên kết tượng trưng, ​​đó là lý do tại sao tôi không hiểu tại sao gói 200 pip lại nhanh như vậy. Cảm ơn!
Cardin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.