2014-05-13 82 views
1

我有一个Python项目,它包含三个组件:主要可执行脚本,这些脚本依赖的模块以及这些脚本处理的数据(sqlite3数据库,平面文件等)。顶层有一个__init__.py文件,以便其他程序也可以根据需要借用模块。我应该将我的Python项目添加到site-packages目录,还是将我的项目追加到PYTHONPATH中?

问题是,将项目移动到默认站点包目录,还是修改PYTHONPATH以包含我的项目上方的一个目录(以便项目可以从中导入)是更“Pythonic”还是“正确” )?一方面,我描述的不是严格的“包装”,而是一个可以被当作包装的数据的“项目”。所以我倾向于修改PYTHONPATH(毕竟,PYTHONPATH必须存在的理由,对吧?)

+0

PYTHONPATH,手下来。 –

回答

1

绝对不要将您的项目添加到网站包这将破坏您的系统Python安装并将在此刻还有其他应用程序会回来,或者您需要安装一些东西。

有在最后两点流行的选择在隔离的方式

安装Python应用程序使用的virtualenv

见的virtualenv项目。它允许

  • 创造新的隔离Python环境 - 蟒蛇这个环境是系统中的一个不同的,有它自己的PYTHONPATH设置这允许保留所有已安装的软件包私人它。
  • 命令行使用命令行激活和禁用给定的virtualenv。在activate之后,你可以运行pip install等,它只会影响virtualenv的安装。
  • 由virtualenv中的Python副本开始调用任何Python脚本 - 这将使用相关的virtualenv(注意,没有必要调用任何activate)使用zc.buildout

    这个包提供命令buildout

。有了这个,你可以使用特殊的配置文件,这允许创建包含所有包和脚本的本地python环境。

结论

  • virtualenv似乎更流行的今天,我觉得更容易学习和使用
  • zc.buildout可能也为你工作,但时间长一点学习时间
  • 安装准备进入系统Python目录应始终保留用于非常特殊的情况(pip,easy_install),最好避免它。
  • 安装到私人目录和manipulatig PYTHONPATH也是一种选择,但你会重复,什么virtualenv已经提供
相关问题