Làm cách nào để định cấu hình PYTHONPATH tùy chỉnh với VM và PyCharm?


85

Tôi đang sử dụng IntelliJ với plugin Python và tính năng Thông dịch viên từ xa để giao tiếp với máy ảo Vagrant của mình. Nó thiết lập trình thông dịch từ xa một cách chính xác để sử dụng trình thông dịch của máy ảo của tôi. Tuy nhiên, tôi sử dụng PYTHONPATH tùy chỉnh trong máy ảo của mình và tôi muốn IntelliJ nhận ra đường dẫn đó và đưa các mô-đun vào đường dẫn đó khi phát triển.

Làm cách nào để định cấu hình trình thông dịch từ xa của IntelliJ / PyCharm để sử dụng PYTHONPATH tùy chỉnh trên máy ảo?


Tôi gặp chính xác vấn đề này, ngoại trừ việc tôi có nhiều dự án theo một sơ đồ chung và ngay bây giờ (trong Emacs) tôi thiết lập mọi thứ động. Thiết lập nó trên cơ sở từng dự án trong Pycharm có vẻ như là một gánh nặng.
AdamC

Câu trả lời:


124

Đối với PyCharm 5 (hoặc 2016.1), bạn có thể:

  1. chọn Tùy chọn> Trình thông dịch dự án
  2. ở bên phải của bộ chọn thông dịch viên có nút "...", hãy nhấp vào nút đó
  3. chọn "thêm ..."
  4. bật lên cửa sổ "Trình thông dịch dự án" mới
  5. chọn nút bên phải nhất (có tên "hiển thị đường dẫn cho trình thông dịch đã chọn")
  6. bật lên cửa sổ "Đường dẫn thông dịch viên"
  7. nhấp vào nút "+"> chọn thư mục PYTHONPATH mong muốn của bạn (thư mục chứa mô-đun python) và nhấp vào OK
  8. Làm xong! Hãy tận hưởng nó!

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

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

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


Đây là những gì tôi làm trong dự án của mình, thật khó chịu. Tôi có dự án A, dự án chung, thử nghiệm dự án. Để chạy đơn nhất trong thử nghiệm dự án, tôi đã thêm các phụ thuộc dự án để kiểm tra dự án phụ thuộc vào dự án A và thông thường, nhưng tôi vẫn phải thêm thủ công các thư mục từ A và chung vào PYTHONPATH.
thinkanotherone,

Điều này sẽ thêm thư mục vào PYTHONPATH toàn cục cho trình thông dịch đó phải không? Không chỉ là dự án?
Ray

@Ray yes, có vẻ như nó sẽ thay đổi cài đặt thông dịch viên chung. Nhưng chúng ta có thể sử dụng các virtualenv khác nhau cho các dự án khác nhau và đặt PYTHONPATH khác nhau cho chúng.
phil

Lưu ý rằng trước tiên bạn phải đặt trình thông dịch làm trình thông dịch cho dự án của bạn, nếu không, nút ngoài cùng bên trái sẽ bị tắt
ospider

Trên OSX, Cmd + Shift + Period hiển thị các thư mục ẩn trong hộp thoại chọn (ví dụ / usr) - vì dường như không có cách nào để chỉ nhập đường dẫn.
Flash

83

Hướng dẫn chỉnh sửa PYTHONPATH của bạn hoặc khắc phục sự cố phân giải nhập để kiểm tra mã như sau:

  1. Mở Preferences (Trên máy Mac, phím tắt là ⌘,).

Cách vào Cài đặt từ Menu

  1. Tìm kiếm Project Structuretrong thanh bên bên trái bên dướiProject: Your Project Name

  2. Thêm hoặc xóa các mô-đun trên thanh bên phải

Cài đặt cấu trúc dự án trong Pycharm 4.5

CHỈNH SỬA : Tôi đã cập nhật ảnh chụp màn hình này cho PyCharm 4.5


Điều này có còn áp dụng không? Tôi được cho là có chuyên gia PyCharm mới nhất nhưng tôi đang thiếu rất nhiều danh mục đó ... bao gồm cả Cấu trúc dự án! Nhưng cảm ơn bạn đã đăng bài này !!!
R Claven,

1
Xin chào, tôi đã cập nhật ảnh chụp màn hình cho PyCharm 4.5, phiên bản mới nhất. Có vẻ như họ đã tổ chức lại các cài đặt trong thanh bên.
Bjorn

Thực sự tôi nợ bạn một lời cảm ơn MASSIVE. Tôi đã nhầm lẫn với "cài đặt mặc định" thay vì cài đặt dự án. Câu trả lời của bạn ở đây đã giúp tôi nhận ra điều này và sau đó tôi đã giải quyết nhiều sự khác biệt và nó đã hoạt động. CẢM ƠN BẠN!
R Claven,

Có cách nào để làm điều này trên toàn cầu không? thêm /Library/Python/2.7/site-packages và /usr/local/lib/python2.7/site-packages vào mọi dự án mà tôi mở.
jeremyjjbrown 28/10/15

Có @jeremyjjbrown, tôi tin rằng bạn có thể làm điều đó bằng cách nhấp vào "Trình thông dịch dự án" và chọn đường dẫn thông dịch viên có các gói trang web bạn muốn. Câu hỏi này chỉ là trả lời để làm cho các gói cụ thể của dự án có sẵn cho các dự án của họ. Bạn thậm chí có thể sử dụng một tệp tin request.txt để thêm tất cả các dự án deps của mình trong pycharm.
Bjorn

16

Đối với tôi, giải pháp là đi đến

Run > Edit Configuration > Defaults > Python

sau đó quản lý

  • "Thêm gốc nội dung vào PYTHONPATH" và
  • "Thêm gốc nguồn vào PYTHONPATH"

hộp kiểm, cũng như đặt trường "Thư mục làm việc".

Nếu bạn đã thiết lập Cấu hình Chạy / Gỡ lỗi của riêng mình thì bạn có thể muốn đi tới

Run > Edit Configuration > Python > [Whatever you called your config]

và chỉnh sửa nó ở đó.

Vấn đề của tôi là tôi muốn có toàn bộ kho lưu trữ của mình trong dự án PyCharm 2016.2 của mình, nhưng chỉ có một thư mục con là thư mục gốc thực sự của mã nguồn python. Tôi đã thêm nó là "Nguồn gốc" bằng cách nhấp chuột phải vào thư mục sau đó

Mark directory as > Source Root

Sau đó bỏ chọn "Thêm gốc nội dung vào PYTHONPATH" và chọn "Thêm gốc nguồn vào PYTHONPATH" trong menu cấu hình Chạy / Gỡ lỗi. Sau đó, tôi kiểm tra thư mục bằng cách thực hiện:

import sys
logger.info(sys.path)

Điều này vượt trội:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

Tuy nhiên, nếu không có bản sửa lỗi, nó nói:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root',                   <-- NOT WANTED
    '/usr/lib/python3.4', 
    '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

Điều đó có nghĩa là tôi đã bao gồm thư mục gốc của dự án. Điều này làm rối tung việc vỗ về cho tôi.


Cảm ơn bạn, tôi không phải là chuyên gia Python và rất tự hỏi làm thế nào để xem qua những đường dẫn nhập nào tôi có thể tiếp cận! ( sys.pathphần đó )
Rastikan

Điều này không lý tưởng vì yêu cầu cập nhật mọi cấu hình chạy.
StephenBoesch

@javadba Nếu bạn muốn nó hoạt động cho tất cả các cấu hình, hãy chuyển đến Run > Edit Configuration > Templates > Python.
André C. Andersen,

@ AndréC.Andersen thx! Tôi thậm chí chưa bao giờ nhìn vào Mẫu trước đây.
StephenBoesch

13

Điều này đã được thực hiện với Cộng đồng PyCharm 2019.1

  1. Đi tới Cài đặt dự án Cài đặt
  2. Chuyển đến Cấu trúc dự án và nhấp chuột phải vào thư mục bạn muốn thêm và nhấp vào "Nguồn" Cấu trúc dự án - thêm nguồn

Điều này sẽ thêm thư mục vào pythonpath của bạn Cấu trúc dự án - sau khi thêm nguồn


3

Bản cập nhật cho câu trả lời chính xác phil được cung cấp, cho các phiên bản mới hơn của Pycharm (ví dụ: 2019.2).

Đi tới Tệp> Cài đặt và tìm dự án của bạn, sau đó chọn Trình thông dịch dự án . Bây giờ hãy nhấp vào nút có một bánh răng ở bên phải của trình thông dịch dự án đã chọn (từng là ... ).

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

Từ menu thả xuống, chọn Show All ... và trong hộp thoại mở ra, hãy nhấp vào biểu tượng có một thư mục và hai thư mục con.

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

Bạn sẽ thấy một hộp thoại với các đường dẫn thông dịch hiện tại, hãy nhấp vào + để thêm một đường dẫn khác.


CẢM ƠN BẠN!!! Một đồng nghiệp và tôi đã đấu tranh với việc thiết lập môi trường của anh ấy để phù hợp với môi trường của tôi và tôi không nhớ gì về việc thực hiện các bước này, nhưng có một con đường quan trọng mà tôi có (thậm chí còn nói rằng "do người dùng thêm vào").
Drarok

2

Theo kinh nghiệm của tôi, sử dụng một biến PYTHONPATH thường là cách tiếp cận sai lầm, vì nó không hoạt động tốt với VENV trên windows. PYTHON khi tải sẽ chuẩn bị đường dẫn bằng cách thêm PYTHONPATH vào đường dẫn, điều này có thể dẫn đến việc Venv được chuẩn bị cẩn thận của bạn sẽ ưu tiên tìm nạp các gói trang web toàn cầu.

Thay vì sử dụng đường dẫn PYTHON, hãy bao gồm tệp pythonpath.pth trong thư mục gói trang web có liên quan (mặc dù hãy cẩn thận những con trăn tùy chỉnh thỉnh thoảng tìm kiếm chúng ở các vị trí khác nhau, ví dụ: enthought trông trong cùng thư mục với python.exe cho các tệp .pth của nó) với mỗi môi trường ảo. Điều này sẽ hoạt động giống như một PYTHONPATH chỉ nó sẽ dành riêng cho cài đặt python, vì vậy bạn có thể có một cái riêng biệt cho mỗi môi trường / cài đặt python. Pycharm tích hợp mạnh mẽ với VENV nếu bạn chỉ truy cập vào python của VENV làm cài đặt python của bạn.

Xem ví dụ: câu hỏi SO này để biết thêm chi tiết về tệp .pth ....


1

Các lựa chọn mới nhất vào tháng 12/2019 cho PYTHONPATH cho một thông dịch viên nhất định. nhập mô tả hình ảnh ở đây


0

Bạn có thể làm điều này bằng cách đi tới hộp thoại của thông dịch viên. Nhấp vào trình thông dịch mà bạn đang sử dụng và bên dưới nó, bạn sẽ thấy hai tab, một tab được gọi là Gói và tab còn lại được gọi là Đường dẫn.

Nhấp vào Đường dẫn và thêm đường dẫn máy ảo của bạn vào đó.


Khi tôi nhấp vào trình thông dịch từ xa và thêm đường dẫn Classpath, nó sẽ phàn nàn khi tôi chỉ định một thư mục từ xa (như /home/vagrant/mydir). Tôi có cần mở đầu con đường với một cái gì đó không? Giao diện của tôi hơi khác vì tôi đang sử dụng IntelliJ với plugin Python chứ không phải PyCharm nếu điều đó có ích.
baalexander

1
Bạn chỉ cần truy cập trình thông dịch SSH và tải nội dung từ tệp vagrant, tùy chọn ở đó.
Trò chơi Brainiac vào


0

Trong Intellij v2017.2, bạn có thể truy cập:

run > edit configurations > click ... next to the field 'Environment variables' > click the green + sign

Tên = PYTHONPATH

value = your_python_path

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.