17.7 安装Python模块

    关于Python模块和包的安装,有以下几种方式。

    • 可以写setup.py并使用分支功能模块distutils来将包安装到Python的lib/site-packages目录。可参见Python的分支模块。
    • 可以在PYTHONPATH环境变量中进行设置,在其中包含包和模块。可以临时的保存在shell中,或者保存在~/bash _ profile或系统的/etc/profile中。在下一节中会对此深入介绍。
    • 可以通过包含.pth文件来向导入路径添加目录。这些文件可以放在本地目录或lib/site-packages来实现对模块或包的引用。更多信息可以参见Python标准库的文档。
    • 本地目录也是一个包。它通常出现在sys.path中的第1级。如果创建的是简单的单模块Python应用,它显得很方便。对于复杂一些的应用,当前目录会随着我们对不同文件的编辑而改变,这样一来,这种方式就不合适了。

    环境变量可以被存为临时的或永久的。可以使用以下命令在交互的会话中对其进行设置。

    export PYTHONPATH=~/my_app-v1.2/my_app

    以上设置完成后,在查找模块时,PYTHONPATH会包含命名目录。通过这样的一个对环境变量的改变,就完成了模块的安装。并没有向Pythonlib/site-packages目录中添加任何东西。

    这是一个临时性的设置,而且在关闭终端会话时修改可能会丢失。一种方案是修改~/.bash profile,保存对环境变量的修改。只需要向.bash profile中添加export这一行,这样在每次登录时包就会被使用。

    对于共享服务器的用户,可以将环境变量的设置放在/etc/profile中,这样就不必对~/.bash _ profile进行修改了。对于独立工作站的用户,比起修改系统设置,基于distutils配置setup.py会更简单一些。

    对于Web应用而言,需要修改Apache的配置,包含对必要的Python模块访问。为了能够快速部署修改后的应用,对于大型的复杂应用,通常不需要使用setup.py。通常会使用一系列应用目录并做简单的.pth修改或者PYTHONPATH修改,来将它们移至新版本中。

    对于以下这种目录,用户为myapp

    /Users/myapp/my_app-v1.2/my_app
    /Users/myapp/my_app-v1.3/my_app

    这样就可以在保持已有版本的基础上并行地创建一个新版本。我们可以通过修改PYTHONPATH/Users/myapp/my app-v1.3/my app来完成从1.2版本到1.3版本的切换。