Làm cách nào để Conda và Virtualenv hoạt động trên mac OS Catalina?


12

Trước đây tôi đã có Conda chạy trơn tru trên Mojave, nhưng tôi đã thấy rằng bản nâng cấp lên Catalina chuyển thư mục "anaconda3" sang Máy tính để bàn của bạn> Các mục được di chuyển> Bảo mật> anaconda3. Có vẻ như cài đặt bảo mật của Catalina có thể không cho phép các ứng dụng cài đặt trực tiếp trong thư mục người dùng nữa.

Tôi đã thử gợi ý ở đây , viết dưới đây:

Xin chào, tôi có thể có một giải pháp

  • Sao chép thư mục anaconda3 nằm trong Mục được di chuyển sang / Users / myname /
  • Thiết bị đầu cuối mở
  • Nhập: xuất PATH = '' / Người dùng / myname / anaconda3 / bin: $ PATH "
  • Nhập: conda init zsh

Nó đã làm việc! Chúc may mắn!

Nhưng điều này không làm việc cho tôi. Sau khi conda init zshtôi nhận được:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: trình thông dịch xấu: Không có tệp hoặc thư mục như vậy

Làm cách nào tôi có thể bật Conda và chạy lại mà không mất tất cả các môi trường ảo? Cảm ơn!


Cập nhật

Tôi đã nhận được Conda để làm việc theo đề nghị của @Ted Shaowang. Điều này có nghĩa là conda env listhiển thị tất cả các môi trường ảo được tạo thông qua Conda.

Tuy nhiên tôi vẫn gặp sự cố virtualenvvì tôi đã thay đổi vị trí tệp anaconda3 mặc định, không thể tìm thấy python.

Các python thực thi nằm ở .virtualenvs/env/bin/pythonkhông thể được tìm thấy. Tôi có cần phải thực hiện các thay đổi tiếp theo để python cũng hoạt động virtualenvkhông?


Từ lỗi của bạn, có vẻ như bạn vẫn đang sử dụng bash, nhưng giải pháp được đề xuất là dành cho zsh(mặc định Catalina mới). Hãy thử conda init bashthay thế.
19 lúc

Tôi đã nhận được cùng một lỗi. bashcũng không hoạt động.
Kaymal

Câu trả lời:


6

Tôi có cùng một vấn đề và điều này làm việc cho tôi:

Sau khi bạn di chuyển Anaconda từ "mục di dời" đến ~/anaconda3, chỉnh sửa dòng đầu tiên của ~/anaconda3/bin/condatập tin từ #!/anaconda3/bin/pythonđể #!/Users/USERNAME/anaconda3/bin/pythonđể phản ánh sự thay đổi.


1
Điều này có ảnh hưởng đến cài đặt pip và Jupyter không?
rrz0

1
Điều này dường như không giải quyết được tất cả các vấn đề liên quan đến anaconda3 và trăn. Tôi nhận được Lỗi: Không thể chạy chương trình "/Users/USER/.virtualenvs/env/bin/python"Không có tệp hoặc thư mục như vậy. Khi tôi kiểm tra trong Finder, tập tin thực sự bị thiếu và không thể định vị được.
rrz0

3

Tôi có lẽ sẽ tránh sử dụng các giải pháp trên. Thư mục đó ~/anaconda3/bincó rất nhiều runnables (không chỉ condamột) sẽ cần phải được thay đổi theo cách thủ công này. Ví dụ, trừ khi bạn thực hiện cùng một thay đổi, bạn không thể chạy jupyter notebook, basehoặc từ các env khác mà bạn có thể có.

Mẹo của tôi: Hãy thử lấy một tệp yêu cầu cho env ảo của bạn và thực hiện cài đặt mới. Bạn có thể sử dụng pipreqsđể có được các yêu cầu được sử dụng cho các dự án riêng lẻ: https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/


Cám ơn vì sự gợi ý. Như bạn nói vấn đề vẫn còn với virtualenvquá.
rrz0

3
Vui lòng xem bài đăng trên blog giới thiệu một công cụ để khắc phục những điều này: anaconda.com/
msarahan


1

Về mặt kỹ thuật, đây là cài đặt lại anaconda, tuy nhiên, tôi đã khôi phục tất cả các ena conda của mình vì vậy, hy vọng đây là một giải pháp chấp nhận được!

Đây là cách tôi đã làm cho nó hoạt động trên Catalina cách đây vài phút (hiện đang sử dụng z-shell): - Đã xác minh sự tồn tại của thư mục "Relocated Item" trên máy tính để bàn của tôi và thư mục "anaconda3" và nội dung của nó bên trong - Điều hướng vào thư mục envs trong "anaconda3" và để cửa sổ công cụ tìm mở (xem ảnh chụp màn hình)

nhập mô tả hình ảnh ở đây

SAU ĐÓ:

  • đã mở Terminal mới (z-shell)
  • đã chạy (cài đặt này vào / usr / local / anaconda3):

    thùng bia cài đặt anaconda

  • Sau khi cài đặt thành công, tôi đã mở tệp ~ / .zshrc (cho các bí danh z-shell của mình) và thêm dòng sau:

    xuất PATH = "/ usr / local / anaconda3 / bin: $ PATH"

  • đã lưu tệp ~ / .zshrc của tôi, sau đó tải lại bằng:

    nguồn ~ / .zshrc

  • để xác minh lệnh conda hoạt động ngay bây giờ, tôi đã chạy:

    danh sách ena

  • Đối với tôi, điều này cho thấy một env cơ sở và đó là nó

  • sau đó mở Finder đến vị trí envs mới: open / usr / local / anaconda3 / envs /.

  • Tôi kéo (di chuyển) tất cả các env cũ của tôi vào thư mục envs mới, rồi chạy:

    danh sách ena

Và tất cả các env cũ của tôi đã trở lại! :)

  • đã cập nhật đường dẫn trình thông dịch / env PyCharm của tôi để phản ánh vị trí mới của các env này (phải khởi động lại PyCharm sau, nhưng bây giờ nó hoạt động!)
  • LÀM XONG

Cảm ơn đề nghị của bạn. Cái này có hiệu quả virtualenvkhông? Tôi có một số virtualenvsthứ mà tôi không thể sử dụng trong Pycharm khi tôi liên tục nhận được 'Lỗi: Không thể chạy chương trình "/Users/USER/.virtualenvs/baseline_env/bin/python" Không có tệp hoặc thư mục như vậy.' Trong Finder tôi cũng nhận được"The original item python cannot be found.
rrz0

1
Vui lòng xem bài đăng trên blog giới thiệu một công cụ để khắc phục nhiều kết nối bị hỏng hơn: anaconda.com/,
msarahan

1
@ Rrz0 dựa trên những gì bạn đã viết Tôi đoán đường dẫn đến virtualenv là sai. Thật là khó khăn, nhưng nếu bạn có thể truy cập vào virtualenv của mình, tôi nghĩ rằng bạn có thể sao chép đường dẫn đến nó và chỉnh sửa các mục trong PyCharm (nếu virtualenvs có trong thỏa thuận các mục đã di chuyển thì tôi không biết nên khuyên bạn ở đâu đặt chúng) - Nếu bạn có thể truy cập các virtualenv cũ của mình, bạn có thể (từng cái một) kích hoạt chúng từ shell và chạy: pip freeze> terms_VENV_NAME.txt - trong PyCharm tạo virtualenvs mới - kích hoạt từng virtualenv mới và chạy: pip install - r yêu
cầu_VENV_NAME.txt

Cảm ơn bạn @PhilS, một cái gì đó dọc theo những dòng đó đã kết thúc hoạt động.
rrz0

0

Không chắc chắn liệu đây có được coi là một nhận xét hay ít nhất là một câu trả lời tạm thời hay không, nhưng tôi sẽ không cố gắng khắc phục bất kỳ vấn đề tương thích Catalina nào với Anaconda cho đến bây giờ. Xem vấn đề GitHub này.


0

Tôi có cùng một vấn đề và công việc này đối với tôi: Giải pháp của tôi:

  1. Sao chép anaconda3 của bạn từ thư mục Relocated Item
  2. Dán vào Người dùng / YourUserName
  3. Mở tệp conda trong anaconda3 / bin bằng trình chỉnh sửa và chỉnh sửa dòng đầu tiên #!/anaconda3/bin/pythonthành#!/Users/YourUserName/anaconda3/bin/python
  4. Lưu nó và chạy tập tin conda
  5. Thiết bị đầu cuối mở
  6. Chạy cái này: export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Chạy conda init zsh

Tôi có cần phải thực hiện các thay đổi tiếp theo để python cũng hoạt động virtualenvkhông?
rrz0

0

Tôi đã phát sinh vấn đề tương tự, và giải pháp sau đây có hiệu quả với tôi và đây là giải pháp đơn giản nhất:

Thay vì loay hoay sao chép tệp anaconda3 từ các mục đã được di chuyển vào thư mục User / USERNAME, tốt hơn hết là cài đặt lại phiên bản mới nhất của anaconda navigator từ trang web chính thức của nó: https://www.anaconda.com/distribution/#macos

Trong khi cài đặt, nó sẽ hỏi bạn một số quyền là kết quả của Chính sách bảo mật mới của Apple, chỉ cần cấp cho chúng và nó hoạt động theo cách cần thiết sau khi cài đặt mới này!


0

Đây là những gì làm việc cho tôi.

Đây là các tệp tiêu đề của tôi (Catalina 10.15):

/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

Chạy sudo find /Library -name stdio.hđể xem vị trí của bạn.

Tệp tiêu đề Mojave 10.14:

$ sudo find /Library -name stdio.h 
/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

Có thể thấy SDK hiện đang được chia thành MACOSX10,14 và 10,15 không giống như trong Mojave.

TLD

Vì vậy, đây là các thư mục SDK của tôi trên Catalina:

<img width = "208" alt = "image" src = "https://user-images.githubusercontent.com/31866965/67324292-e49a1e00-f513-11e9-997e-9c49e7badbe5.png">

  1. Đổi tên MacOSX.sdkthànhMacOSX_orig.sdk
  2. Nhấp chuột phải vào MacOSX10.14.sdk
  3. Bản sao
  4. Đổi tên thư mục trùng lặp thành MacOSX.sdk

Cấu trúc thư mục của bạn sẽ trông như thế này:

<img width = "195" alt = "hình ảnh" src = "https://user-images.githubusercontent.com/31866965/67318914-74d46500-f50c-11e9-879d-ef0cd3e458cc.png">

Như thế này, về cơ bản chúng tôi đang sử dụng sdk OSX của phiên bản trước làm sysroot. Hi vọng điêu nay co ich.

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.