我在使用Python的项目时遇到了一些困难。这是参考Qn 48的Learn Python the Hard Way。
测试人员lexicon_tests.py
的那行引发了一个问题:
from ex48 import lexicon
我看到的错误是:
ImportError: no module named ex48
我想知道这是否是因为我没有在项目文件夹中正确组织文件:我有一个名为
ex48
的文件夹,其子文件夹包括tests
和lexicon
。在lexicon
中,我有文件lexicon.py
。在tests
中,我有文件lexicon_tests.py
上述组织有错误吗?
编辑:在这里发布代码-
在/ ex48中,我有setup.py
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
config = {
'description': 'My Project',
'author': 'MyName',
'url': 'URL to get it at.',
'download_url': 'Where to download it.',
'author_email': 'My email.',
'version': '0.1',
'install_requires': ['nose'],
'packages': ['ex48'],
'scripts': [],
'name': 'projectname'
}
setup(**config)
在/ ex48 / lexicon中,我有lexicon.py
class lexicon:
@staticmethod
def scan(string):
direction = ['north', 'south', 'east', 'west', 'down', 'up', 'left', 'right', 'back']
verbs = ['go','stop','kill','eat']
stop = ['the','in', 'of', 'from', 'at','it']
nouns = ['door', 'bear', 'princess', 'cabinet']
words = string.split()
result = []
for word in words:
if word in direction:
result.append(('direction',word))
等等 。 。 。以
return result
结尾。所有环境变量均已正确添加。我看到的错误是ImportError
,名称为lexicon。 最佳答案
为了这
from ex48 import lexicon
result = lexicon.scan("north south east")
要正常工作,您应该将
lexicon.py
放在文件夹ex48
中,并且lexicon.py
应该在模块级别包含一个scan
函数,而不是作为类方法。使用当前代码,在程序包
lexicon
中模块lexicon
中的类lexicon
中,import语句必须类似于from ex48.lexicon.lexicon import lexicon
关于python - 如何在Python项目中正确组织文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9276166/