使用setup.py安装软件包时导入错误

时间:2014-05-07 10:37:00

标签: python

我试图运行" python setup.py install"但面临导入错误,即导入错误:没有名为xlrd的模块 此模块xlrd模块导入" master_to_json"脚本仍然在安装函数中的安装需要放置xlrd。 master_to_json.py包含

import xlrd
..
def main():
....
....

if __name__ == '__main__':
    main()

setup.py包含:

import os
import sys
import subprocess
from distutils.dir_util import mkpath
from setuptools import setup, find_packages

from dictionary_tools.tools.dictionary import master_to_json
from dictionary_tools.tools.dictionary  import common
setup(
    name=common.PROGRAM,
    version=common.VERSION,
    packages=find_packages(),
    entry_points={
        'console_scripts': [
            master_to_json.__program__ + ' = dictionary_tools.tools.dictionary.master_to_json:main',
        ]
    },
install_requires=["xlrd >= 0.9.2", "xlwt >= 0.7.5"],
long_description=open('README.txt').read()
)

执行时
$ python setup.py install

1 个答案:

答案 0 :(得分:0)

问题是,您尝试更快地导入master_to_json,然后执行您的setup()。

import os
import sys
import subprocess
from distutils.dir_util import mkpath
from setuptools import setup, find_packages

from dictionary_tools.tools.dictionary import master_to_json # <- here is the problem
from dictionary_tools.tools.dictionary  import common

您的堆栈跟踪很可能会在更深层次的通话中报告此情况。

一般建议:不要在setup.py中导入任何不需要运行setup()的内容,这必须在安装完成后运行的脚本中完成。

我的猜测是,您应该通过删除对尚未安装的软件包的依赖来简化您的setup.py(未测试)。