我试图在我的应用程序中添加一些库,使其更加便携。 问题是,应用程序的构建没有考虑到这一点。从文件夹导入模块
所以更具体一点,我想在我的软件包中有一个名为libs的文件夹,并在我的应用程序中保留一个用于该应用程序的库的副本。
例如让我说我使用MySQLdb库。在我的应用程序,我将其导入这样
import mysqldb
我希望能够使用库文件夹中的相同的代码,但是有MySQLdb的。
这可能吗?我尝试了__init__.py
,但是我失败了。
我试图在我的应用程序中添加一些库,使其更加便携。 问题是,应用程序的构建没有考虑到这一点。从文件夹导入模块
所以更具体一点,我想在我的软件包中有一个名为libs的文件夹,并在我的应用程序中保留一个用于该应用程序的库的副本。
例如让我说我使用MySQLdb库。在我的应用程序,我将其导入这样
import mysqldb
我希望能够使用库文件夹中的相同的代码,但是有MySQLdb的。
这可能吗?我尝试了__init__.py
,但是我失败了。
你可以玩sys.path,并达到你想要的。只要做你的程序的开头:
import sys
sys.path = [$'path_to_your_lib_folder_here'$] + sys.path
这不但是最佳做法,你需要小心,特别是如果你的软件将被用作其他图书馆第三方。
你不应该把MySQLdb放到你的项目的任何地方。这是第三方库,它应该作为系统软件包安装或者安装在您的项目虚拟环境中。
是的,但是如果我不得不在服务器上部署应用程序,那么我没有安装东西的权限呢? – kechapito
这就是virtualenv的用途。 –
谢谢,我不知道。 – kechapito