Làm thế nào để chạy Spyder trong môi trường ảo?


98

Tôi đã sử dụng Spyder được cài đặt với bản phân phối Anaconda sử dụng Python 2.7 làm mặc định. Hiện tại tôi cần thiết lập một môi trường ảo phát triển với Python 3.4.

Hai gợi ý hàng đầu sau khi nghiên cứu trực tuyến là:

  1. để thiết lập môi trường ảo trước tiên và chỉ thay đổi các tùy chọn của Spyder, ví dụ: tại đây ;
  2. để cài đặt tất cả các phụ thuộc Spyder, như PyQt4, trong chính môi trường ảo, ví dụ: tại đây ;

Cả hai khuyến nghị đều rườm rà và không giống như các tùy chọn thông minh để phát triển.

Có giải pháp nào cho phép tự động chạy Spyder với phiên bản Python yêu cầu sau khi kích hoạt môi trường ảo cần thiết không?

Câu trả lời:


114

Đây là một cách nhanh chóng để làm điều đó vào năm 2020. Sử dụng Anaconda Navigator:

  1. Mở Anaconda Navigator
  2. Tạo môi trường mới của bạn như bạn muốn. Tôi đặt tên cho môi trường này là "thử nghiệm". Bấm vào nó để kích hoạt nó.

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

  1. Đi tới "Trang chủ" và nhấp vào "Cài đặt" bên dưới hộp Spyder.

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

  1. Nhấp vào "Khởi chạy / Chạy"

Vẫn còn một số lỗi nhỏ khi thiết lập môi trường của bạn (hầu hết được giải quyết bằng cách khởi động lại Bộ điều hướng), nếu bạn tìm thấy lỗi, vui lòng đăng nó trong trình theo dõi lỗi của Anaconda Issues . Cảm ơn.


Nếu ngay cả khi điều này không hoạt động, Navigator vẫn có thể hữu ích, nhấp vào> Enviroments sẽ đưa bạn đến cửa sổ quản lý cho các mô-đun được cài đặt trên môi trường đó, tìm kiếm và chọn các mô-đun liên quan đến spyder, sau đó nhấp vào Áp dụng sẽ cài đặt chúng và sự phụ thuộc của chúng.

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


11
Điều này nên được thêm vào giải pháp hàng đầu nếu có thể
dward 4

2
Cách, cách tốt hơn.
Eric Auld

2
Vâng. Có vẻ như người ta phải cài đặt một phiên bản Spyder khác nhau cho mỗi VE.
Mikhail Genkin,

3
Tôi có thể làm điều này từ dòng lệnh không? Chạy Navigator mỗi lần có vẻ như một kéo ...
nocibambi

1
@nocibambi Có, nếu bạn muốn chạy Spyder trong env từ cmd, hãy xem phần cuối câu trả lời của tomaskazemekas.
Lorenz

104

Có một tùy chọn để tạo môi trường ảo trong Anaconda với phiên bản Python được yêu cầu.

conda create -n myenv python=3.4

Để kích hoạt nó:

source activate myenv   # (in linux, you can use . as a shortcut for "source")
activate myenv          # (in windows - note that you should be in your c:\anaconda2 directory)

CẬP NHẬT . Tôi đã thử nghiệm nó với Ubuntu 18.04. Bây giờ bạn phải cài đặt spyder bổ sung cho môi trường mới bằng lệnh này (sau khi kích hoạt môi trường bằng lệnh trên):

conda install spyder

(Tôi cũng đã thử nghiệm cài đặt với pip, nhưng đối với phiên bản Python 3.4 trở lên, nó bị lỗi do lỗi phụ thuộc thư viện yêu cầu cài đặt thủ công.)

Và bây giờ để chạy Spyder với Python 3.4 chỉ cần gõ:

spyder

Spyder với Python 3.4

CHỈNH SỬA từ một độc giả:

Đối với một mở bình thường, sử dụng "Anaconda Prompt"> activate myenv> spyder(sau đó là "Anaconda Prompt" phải ở lại mở, bạn không thể sử dụng nó cho các lệnh khác, và một lực gần sẽ đóng cửa Spyder). Điều này tất nhiên là nhanh hơn tải dài của "Anaconda Navigator"> chuyển đổi môi trường> khởi chạy Spyder (câu trả lời của @ adelriosantiago).


7
Tôi đã thử nghiệm điều này trên Windows 7 và nó hoạt động. Bạn không cần thêm từ "nguồn" vào đầu để kích hoạt môi trường. Để có Python 2,7, hãy thay đổi cài đặt thành python = 2,7.
tomaskazemekas

4
oh có thể bạn phải cài đặt spyder vào môi trường đó trước? Tôi đã tạo môi trường với numpy thay vì anaconda, vì vậy có thể nó đang chạy spyder từ môi trường chính?
endolith

4
đó dường như là một vấn đề. điều tương tự với ipython nhưng đã được sửa sau khi cài đặt nó trong môi trường
endolith

9
Tôi cũng nhận thấy rằng trên windows (10), chỉ cần khởi chạy spyder từ môi trường anaconda vẫn khởi chạy spyder với python mặc định của tôi và tôi phải cài đặt spyder trong môi trường anaconda trước để mở spyder bằng python của môi trường đó.
Max Power

9
Ngoài ra, hãy đảm bảo rằng bạn có spyder trong môi trường đó bằng cáchconda install -n myenv spyder
shahar_m

57

Bổ sung cho câu trả lời của tomaskazemekas: bạn nên cài đặt spyder trong môi trường ảo đó bằng cách:

conda install -n myenv spyder

(trên Windows, Linux hoặc MacOS, bạn có thể tìm kiếm các lệnh tương tự)


2
Spyder thường được cài đặt như một phần của danh sách gói Anconda Python . Chỉ có thể cần cài đặt bổ sung trong trường hợp miniconda.
tomaskazemekas

1
Vâng đúng vậy. Trong trường hợp của tôi, tôi đã cài đặt môi trường ảo trước đó và đó là phiên bản nhẹ, tôi chỉ cài đặt các gói rất cần thiết. Tôi đoán có ai đó đang ở trong hoàn cảnh của tôi.
Tin Lưu

@tomaskazemekas thưa ông, tôi đã cài đặt miniconda3 :) làm cách nào để chạy mã python trong spyder vì tôi không biết cách chạy spyder? khi tôi gõ "spyder" trong lời nhắc miniconda "không thể nhận ra lệnh này" lỗi được tạo ra.
Noman marwat

@Noman marwat Vì spyder không phải là một phần của miniconda, bạn phải cài đặt nó trước khi chạy bằng lệnh conda install spyder.
tomaskazemekas

Sau đó, tìm liên kết biểu tượng bên trong myenv/binthư mục và sao chép nó vào Applicationsthư mục để bạn có thể dễ dàng tìm thấy nó và khởi chạy Spyder bên trong môi trường của nó mà không cần phải nhập vào một cửa sổ nhỏ màu đen! (bạn cũng có thể dễ dàng thêm một biểu tượng vào nó, nếu bạn thích các biểu tượng)
PatrickT

48

Điều gì đã làm việc cho tôi:

  1. chạy spyder từ môi trường (sau khi kích hoạt nguồn)
  2. đi tới Công cụ -> tùy chọn -> Trình thông dịch python và chọn tệp python từ env bạn muốn liên kết với spyder ví dụ: / home / you / anaconda3 / envs / your_env / bin / python

Hoạt động trên ubuntu 16, spyder3, python3.6.


Sau khi thử tất cả các phần còn lại của này và các nơi khác viết (! Hai ngày cố gắng), đây là giải pháp duy nhất làm việc để thiết lập các envs môi trường thích hợp bên Spider ..
Antonio Canepa

Không yêu cầu bước (1), vì bước (2) đã định tuyến trình thông dịch đến môi trường.
Feras

2
@Feras Đối với độc giả trong tương lai: Tôi cũng nghĩ rằng bước 1 là thừa. Nhưng việc bỏ qua nó sẽ gây ra tất cả các loại lỗi điên rồ (và thậm chí gây ra lỗi giao diện người dùng và Spyder không phản hồi).
máybanana

17

Để thực hiện mà không cần cài đặt lại spyder trong mọi môi trường, hãy làm theo tài liệu tham khảo chính thức tại đây .

Tóm lại (đã thử nghiệm với conda):

  • Spyder nên được cài đặt trong môi trường cơ sở

Từ lời nhắc hệ thống:

  • Tạo một môi trường mới. Lưu ý rằng tùy thuộc vào cách bạn tạo nó (conda, virtualenv), thư mục môi trường sẽ được đặt ở vị trí khác nhau trên hệ thống của bạn)

  • Kích hoạt môi trường (ví dụ conda activate [yourEnvName]:)

  • Cài đặt spyder-kernel bên trong môi trường (ví dụ conda install spyder-kernels:)

  • Tìm và sao chép đường dẫn cho tệp thực thi python bên trong môi trường. Việc tìm đường dẫn này có thể được thực hiện bằng cách sử dụng lệnh này từ dấu nhắcpython -c "import sys; print(sys.executable)"

  • Hủy kích hoạt môi trường (tức là trở về cơ sở conda deactivate)

  • chạy spyder ( spyder3)

  • Cuối cùng trong menu Công cụ spyder, đi tới Tùy chọn> Trình thông dịch Python> Sử dụng trình thông dịch sau và dán đường dẫn thực thi python môi trường

  • Khởi động lại bảng điều khiển ipython

PS: trong spyder, bạn sẽ thấy ở dưới cùng một cái gì đó như thế nàynhập mô tả hình ảnh ở đây

Thì đấy


Đây là câu trả lời hợp lý duy nhất.
sjsam

Lưu ý rằng khi sử dụng virtualenv & spyder 4.1.3, không có gì xuất hiện ở dòng dưới cùng xác nhận (mọi thứ đều hoạt động theo dự định)
Alexis

Đây là câu trả lời chính xác! Ngoài ra, cài đặt spyder có thể trong bất kỳ môi trường ảo chung cư nào. Nó không cần phải ở trong môi trường cơ sở.
Sanchit

1
Bạn nói đúng @Sanchit, bạn có thể "pip / conda" cài đặt spyder trong mỗi môi trường sau đó có thể gọi nó từ đó nhưng khi bạn muốn chỉ cần cài đặt một lần thì đây là giải pháp
Alexis

10

Các câu trả lời trên đều đúng nhưng tôi gọi spydertrong virtualenv của mình sẽ vẫn sử dụng của tôi PATHđể tra cứu phiên bản spyder trong anaconda env mặc định của tôi. Tôi đã tìm thấy câu trả lời này đưa ra giải pháp sau:

source activate my_env            # activate your target env with spyder installed
conda info -e                     # look up the directory of your conda env
find /path/to/my/env -name spyder # search for the spyder executable in your env
/path/to/my/env/then/to/spyder    # run that executable directly

Tôi đã chọn điều này thay vì sửa đổi PATHhoặc thêm một liên kết đến tệp thực thi ở mức độ ưu tiên cao hơn PATHvì tôi cảm thấy điều này ít có khả năng phá vỡ các chương trình khác. Tuy nhiên, tôi đã thêm một bí danh cho tệp thực thi trong ~/.bash_aliases.


8

Tôi vừa gặp vấn đề tương tự khi cố gắng chạy Spyder trong Môi trường ảo.

Giải pháp rất đơn giản:

Kích hoạt môi trường ảo của bạn.

Sau đó, pip cài đặt Spyder và các phụ thuộc của nó (PyQt5) trong môi trường ảo của bạn.

Sau đó khởi chạy Spyder3 từ CLI môi trường ảo của bạn.

Nó hoạt động tốt cho tôi bây giờ.


1
Điều này không hoạt động với python2 trong ubuntu 16 nữa. Bất kỳ ý tưởng về một công việc xung quanh?
masad

Python 2 không được dùng nữa. Bạn nên nâng cấp bản thân lên sử dụng Python 3.
Lập trình viên Jerusalem

4

Trên Windows:

Bạn có thể tạo một lối tắt thực thi

Anaconda3\pythonw.exe Anaconda3\cwp.py Anaconda3\envs\<your_env> Anaconda3\envs\<your env>\pythonw.exe Anaconda3\envs\<your_env>\Scripts\spyder-script.py

Tuy nhiên, nếu bạn bắt đầu spyder từ venv của mình bên trong vỏ Anaconda, tôi tin rằng nó sẽ tạo lối tắt này cho bạn (chỉ cần tìm kiếm "Spyder" trên Windows).


1

Tôi làm theo một trong những lời khuyên ở trên và thực sự nó hoạt động. Tóm lại trong khi bạn tải xuống Anaconda trên Ubuntu bằng cách sử dụng lời khuyên ở trên có thể giúp bạn 'tạo' môi trường. Mặc định khi bạn tải xuống Spyder trong trường hợp của tôi là: (base) smith @ ubuntu ~ $ . Sau khi bạn tạo môi trường, tức là fenics và kích hoạt nó bằng $ conda, hãy kích hoạt fenics , dấu nhắc thay đổi thành (fenics) smith @ ubuntu ~ $ . Sau đó, bạn khởi chạy Spyder từ dấu nhắc này, tức là $ spydervà hệ thống của bạn mở IDE Spyder, và bạn có thể viết mã fenics trên đó. Hãy nhớ mỗi khi bạn mở một thiết bị đầu cuối, hệ thống của bạn sẽ mở lời nhắc mặc định. Bạn phải kích hoạt môi trường của mình nơi gói của bạn đang ở và thay đổi ngay lập tức đối với nó, tức là (fenics). Hy vọng điều này có thể giúp cho bạn. Cảm ơn bạn cũng như tất cả những người đã giúp đỡ. Cộng đồng này thật tuyệt.

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.