我在使用Python的项目时遇到了一些困难。这是参考Qn 48Learn Python the Hard Way

测试人员lexicon_tests.py的那行引发了一个问题:

from ex48 import lexicon


我看到的错误是:

ImportError: no module named ex48


我想知道这是否是因为我没有在项目文件夹中正确组织文件:我有一个名为ex48的文件夹,其子文件夹包括testslexicon。在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/

10-12 22:04