Başka bir geliştirici ve ben, Python'un bir kullanıcı (örneğin, geliştirme) dizininde bir Python paketi bulmasına izin vermek için PYTHONPATH veya sys.path'in kullanılması gerektiği konusunda hemfikir değiliz.
Tipik bir dizin yapısına sahip bir Python projemiz var:
Project
setup.py
package
__init__.py
lib.py
script.py
Script.py'de yapmamız gerekiyor import package.lib
. Paket site paketlerine yüklendiğinde, script.py bulabilir package.lib
.
Ancak bir kullanıcı dizininden çalışırken, başka bir şey yapılması gerekir. Benim çözümüm PYTHONPATH'ımı "~ / Project" içerecek şekilde ayarlamak. Başka bir geliştirici, bu kod satırını script.py'nin başına koymak istiyor:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Böylece Python package.lib
,.
Bunun kötü bir fikir olduğunu düşünüyorum, çünkü bu satır yalnızca yerel bir kopyadan çalışan geliştiriciler veya insanlar için yararlı, ancak bunun neden kötü bir fikir olduğuna dair iyi bir neden veremiyorum.
PYTOHNPATH, sys.path mi kullanmalıyız, yoksa iyi mi?