我正试图向公众发布一个用Python编写的命令行程序,但我想首先测试它,以确保该程序能按我的预期工作。为此,我创建一个简单的wheel发行版,在另一个目录中创建一个virtualenv实例,并将wheel安装到上述环境中。别紧张,对吧?在
不是这样。在
当我试图在测试环境中调用程序时,收到以下错误消息:Traceback (most recent call last):
File "~/testing/bin/leprechaun", line 7, in
from leprechaun.main import main
File "~/testing/lib/python3.4/site-packages/leprechaun/main.py", line 8, in
import generator
ImportError: No module named 'generator'
因此,由于某种原因,generator.py文件似乎没有被导入。然而,奇怪的是generator.py和{}(程序的主要入口点)存在于同一目录中。在
以下是我的项目树层次结构,供参考:
^{pr2}$
对于kicks,我的setup.py脚本:#!/usr/bin/env python3
import re
from setuptools import setup, find_packages
version = re.search("^__version__\s*=\s*\"(.*)\"$",
open("leprechaun/__init__.py").read(), re.M).group(1)
setup(
name='leprechaun',
version=version,
description="A simple rainbow table generator",
long_description=open("README.rst", encoding="utf-8").read(),
author="My Name",
author_email="My Email",
url="https://github.com/zcdziura/leprechaun",
license="MIT",
packages=find_packages(),
package_data={
"leprechaun": ["data/wordlist*"]
},
entry_points={
"console_scripts": [
"leprechaun = leprechaun.main:main"
]
}
)
我假设生成的入口点脚本只需从我的包中调用main函数,这样就可以从同一目录导入模块。然而,情况似乎并非如此。在
我该怎么解决这个问题?在