Một nhà phát triển khác và tôi không đồng ý về việc liệu PYTHONPATH hoặc sys.path có nên được sử dụng để cho phép Python tìm một gói Python trong thư mục người dùng (ví dụ: phát triển) hay không.
Chúng tôi có một dự án Python với cấu trúc thư mục điển hình:
Project
setup.py
package
__init__.py
lib.py
script.py
Trong script.py, chúng ta cần làm import package.lib
. Khi gói được cài đặt trong site-package, script.py có thể tìm thấy package.lib
.
Tuy nhiên, khi làm việc từ một thư mục người dùng, cần phải thực hiện một việc khác. Giải pháp của tôi là đặt PYTHONPATH của tôi bao gồm "~ / Project". Một nhà phát triển khác muốn đặt dòng mã này vào đầu script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Vì vậy, Python có thể tìm thấy bản sao cục bộ của package.lib
.
Tôi nghĩ đây là một ý tưởng tồi, vì dòng này chỉ hữu ích cho các nhà phát triển hoặc những người chạy từ một bản sao cục bộ, nhưng tôi không thể đưa ra lý do chính đáng tại sao đó là một ý tưởng tồi.
Chúng ta có nên sử dụng PYTOHNPATH, sys.path hay không?