我正在创建一个位于目录中的自包含python工具,我希望我的一些同事能够使用包含numpy和matplotlib的标准python发行版运行。我不想让他们安装额外的库。
─myprogram
| __main__.py
| [...other .py files...]
├───datafiles
├───sandbox
└───xlrd
├───doc
└───examples我使用的是xlrd库,我把它包含在程序发行版中,这样他们就不必安装它了。
我已经测试了我的程序,以确保它与环境保护署,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库?
澄清:
发布于 2013-06-19 22:24:31
将myprogram\xlrd重命名为myprogram\frozen_xlrd。然后用
try:
import xlrd
except ImportError:
import frozen_xlrd as xlrd或者,您可以告诉Python默默地忽略这个特定的UserWarning。
import warnings
warnings.filterwarnings("ignore",
message="Module xlrd was already imported",
category=UserWarning)在导入scikits之前,将其放在程序的早期。
https://stackoverflow.com/questions/17202297
复制相似问题