2013-08-15 42 views
23

Tôi mới làm quen trong này, và tôi đã bắt đầu học tập trăn, nhưng tôi có một số câu hỏi mà tôi không thể hiểu được,Python - PYTHONPATH trong linux

  1. gì chính xác là PYTHONPATH (trong ubuntu)? là một thư mục?
  2. Con trăn được cung cấp theo mặc định trong ubuntu hay nó phải được cài đặt một cách rõ ràng?
  3. Thư mục chứa tất cả các mô-đun (Tôi có nhiều thư mục có tên là python_) ở đâu?
  4. Nếu tôi muốn mô-đun mới hoạt động khi tôi lập trình (chẳng hạn như pyopengl), tôi nên giới thiệu tất cả các thư mục tôi có trong thư mục đã tải xuống ở đâu?
  5. Quay lại từ vấn đề PYTHONPATH, Làm cách nào để định cấu hình PYTHONPATH để bắt đầu làm việc trên mô-đun mới của tôi? cảm ơn.

Trả lời

17
  1. PYTHONPATH là một environment variable
  2. Có (xem https://unix.stackexchange.com/questions/24802/on-which-unix-distributions-is-python-installed-as-part-of-the-default-install)
  3. /usr/lib/python2.7 trên Ubuntu
  4. bạn không nên cài đặt các gói bằng tay. Thay vào đó, hãy sử dụng pip. Khi một gói không có trong pip, nó thường có một tập lệnh cài đặt setuptools sẽ cài đặt gói vào vị trí thích hợp (xem điểm 3).
  5. nếu bạn sử dụng pip hoặc setuptools, sau đó bạn không cần phải thiết lập một cách rõ ràng PYTHONPATH

Nếu bạn nhìn vào các hướng dẫn cho pyopengl, bạn sẽ thấy rằng họ là phù hợp với điểm 4 và 5.

21

1) PYTHONPATH là biến môi trường mà bạn có thể đặt để thêm thư mục bổ sung nơi python sẽ tìm kiếm mô-đun và gói. ví dụ:

# make python look in the foo subdirectory of your home directory for 
# modules and packages 
export PYTHONPATH=${PYTHONPATH}:${HOME}/foo 

Ở đây tôi sử dụng cú pháp sh. Đối với các loại vỏ khác (ví dụ: csh, tcsh), cú pháp sẽ hơi khác. Để làm cho nó vĩnh viễn, hãy đặt biến trong tệp init của trình bao (thường là ~/.bashrc).

2) Ubuntu đi kèm với python đã được cài đặt. Có thể có lý do để cài đặt các phiên bản python khác (độc lập), nhưng tôi thấy rằng hiếm khi cần thiết.

3) Thư mục nơi mô đun của bạn hoạt động phụ thuộc vào PYTHONPATH và nơi thư mục được thiết lập khi cài đặt python. Đối với hầu hết các phần, các công cụ cài đặt bạn không nên quan tâm về nơi nó sống - Python biết nó ở đâu và nó có thể tìm thấy các mô-đun. Sắp xếp giống như phát lệnh ls - nơi nào ls hoạt động? /usr/bin? /bin? 99% thời gian, bạn không cần phải quan tâm - Chỉ cần sử dụng ls và vui mừng rằng nó sống ở đâu đó trên PATH của bạn để vỏ có thể tìm thấy nó.

4) Tôi không chắc mình có hiểu câu hỏi hay không. Mô-đun bên thứ 3 thường đi kèm với hướng dẫn cài đặt. Nếu bạn làm theo hướng dẫn, python sẽ có thể tìm thấy các mô-đun và bạn không cần phải quan tâm về nơi nó đã được cài đặt.

5) Định cấu hình PYTHONPATH để bao gồm thư mục nơi mô đun của bạn cư trú và python sẽ có thể tìm thấy mô-đun của bạn.

+2

Nếu người dùng Python có Python2.7, Python3.5 và Python3.6 được cài đặt trong Ubuntu, 'echo $ PYTHONPATH' có thể trả về': /usr/local/lib/python3.5/dist-packages:/usr/local/lib/python2.7/dist-packages:/usr/local/lib/python3.6/dist-packages' – noobninja

6

Làm không gây rối với PYTHONPATH. Thường xuyên hơn không, bạn đang làm sai và nó sẽ chỉ mang lại cho bạn rắc rối.

Tôi khuyên bạn nên học how to package a Python module properly, có thể sử dụng this easy setup. Nếu bạn đặc biệt lười biếng, bạn có thể sử dụng cookiecutter để làm tất cả công việc khó khăn cho bạn.

+1

liên kết đầu tiên là một trang không tồn tại. – RolfBly

+0

@RolfBly: Đã cập nhật liên kết. Cảm ơn bình luận của bạn. – Sardathrion

+1

Nói với ai đó "đây là con rồng" không có lợi cho việc học. Nếu thay đổi một cái gì đó có thể dẫn đến hành vi không mong muốn thì tất cả có nghĩa là bao gồm một cảnh báo nhưng không bao gồm giải thích. Hoặc tốt hơn là cung cấp cách để làm một điều trong khi tránh những cạm bẫy đã nêu. – Jerod

Các vấn đề liên quan