如何将Python模块封装在一个文件中?

通常,您不能将Python模块封装在一个文件中。因为这样做会破坏python使用的模块搜索方法(文件和目录)。如果由于权限不足而无法在计算机上安装模块,则可以使用virtualenv或将模块文件保存在另一个目录中,并使用以下代码来允许Python搜索给定模块中的模块:

>>> import os, sys
>>> file_path = 'AdditionalModules/'
>>> sys.path.append(os.path.dirname(file_path))
>>> # Now python also searches AdditionalModules folder for importing modules as we have set it on the PYTHONPATH.

您还可以使用virtualenv创建隔离的本地Python环境。解决的基本问题是依赖项和版本之一,以及间接权限。假设您有一个需要使用LibFoo的版本1的应用程序,但是另一个应用程序需要的版本2。您如何同时使用这两个应用程序?如果将所有内容都安装到/usr/lib/python2.7/site-packages(或平台的标准位置是什么)中,那么很容易以无意中升级不应升级的应用程序的情况结束。这也可以用在我们的用例中,因为我们没有权限,因此无法在计算机上安装软件包。有关虚拟环境的更多信息,请阅读文档:https : //virtualenv.pypa.io/en/stable/