gpt4 book ai didi

python - 我应该将我的 Python 项目添加到 site-packages 目录,还是将我的项目附加到 PYTHONPATH?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:32 24 4
gpt4 key购买 nike

我有一个 Python 项目,其中包含三个组件:主要可执行脚本、这些脚本依赖的模块以及这些脚本操作的数据(sqlite3 数据库、平面文件等)。顶层有一个 __init__.py 文件,以便其他程序在需要时也可以从模块中借用。

问题是,将我的项目移动到默认的 site-packages 目录中,还是修改 PYTHONPATH 以包含我的项目上方的一个目录(以便可以从中导入该项目),是否更“Pythonic”或“正确” ?一方面,我所描述的并不是严格意义上的“包”,而是一个包含可以被视为包的数据的“项目”。所以我倾向于修改 PYTHONPATH 的方向(毕竟 PYTHONPATH 的存在一定是有原因的,对吧?)

最佳答案

绝对不要将你的项目添加到站点包中,这会破坏你的系统 Python 安装,并且会在其他应用程序出现或你需要安装某些东西时触发。

最后有两种流行的选项可以以独立的方式安装 python 应用程序

使用虚拟环境

请参阅 virtualenv 项目。它允许

  • 创建新的隔离 python 环境 - 此环境的 python 与系统环境不同,并且有自己的 PYTHONPATH 设置,这允许将所有已安装的软件包保持私有(private)。
  • 从命令行激活和停用给定的 virtualenv 以供命令行使用。 激活后,您可以运行pip install等,它只会影响给定的virtualenv安装。
  • 通过 virtualenv Python 副本启动来调用任何 Python 脚本 - 这将使用相关的 virtualenv(注意,无需调用任何 activate)

使用zc.buildout

此包提供命令buildout。这样,您可以使用特殊的配置文件,这允许使用所有包和脚本创建本地 python 环境。

结论

  • virtualenv 如今似乎更流行,我发现它更容易学习和使用
  • zc.buildout 可能也适合您,但要准备好学习更长的时间
  • 安装到系统 Python 目录应始终保留用于非常特殊的情况(pip、easy_install),最好避免这样做。
  • 安装到私有(private)目录并操作 PYTHONPATH 也是一种选择,但您需要重复一下 virtualenv 已经提供的内容

关于python - 我应该将我的 Python 项目添加到 site-packages 目录,还是将我的项目附加到 PYTHONPATH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23643027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com