我正在创建一个独立的 python 工具,位于一个目录中,我希望我的一些同事能够使用包含 numpy 和 matplotlib 的标准 python 发行版运行该工具。我不希望他们必须安装额外的库。
─myprogram
| __main__.py
| [...other .py files...]
├───datafiles
├───sandbox
└───xlrd
├───doc
└───examples
我正在使用该xlrd
库,该库包含在我的程序分发中,因此他们不必安装它。
我已经测试了我的程序以确保它可以与 Enthought EPD、PortablePython 和 PythonXY 一起使用。
这是问题所在:PythonXY 可以与 xlrd 库一起安装。当我用 PythonXY 运行我的程序时,我收到了这个警告:
c:\app\python\pythonxy-2.7.5.0\lib\site-packages\scikits\__init__.py:1:
UserWarning: Module xlrd was already imported from myprogram\xlrd\__init__.pyc,
but c:\app\python\pythonxy-2.7.5.0\lib\site-packages is being added to sys.path
__import__('pkg_resources').declare_namespace(__name__)
如何调整我的源代码,使其仅导入我提供的嵌入式 xlrd 库,而不是已安装的库(如果已安装)?
澄清:
- 除了打印的警告之外,是否会发生任何副作用?我希望使用 xlrd 的嵌入式版本,而不是安装在 python 中的全局副本。
- 如果没有问题,我怎样才能只为这个库禁止这个警告?