python项目结构有问题

python项目结构有问题,python,project,Python,Project,我目前正在进行“艰苦学习python”的练习46,我一直面临着让我的示例项目结构按照本章中描述的方式工作的严重问题。首先,我的结构是这样的 Kilos/ Kilos/ __init__.py bin/ Birds.py docs/ setup.py tests/ __init__.py Kilos_tests.py try: from setup

我目前正在进行“艰苦学习python”的练习46,我一直面临着让我的示例项目结构按照本章中描述的方式工作的严重问题。首先,我的结构是这样的

 Kilos/
      Kilos/
          __init__.py
      bin/
          Birds.py
      docs/
      setup.py
      tests/
          __init__.py
          Kilos_tests.py
try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

config = {
    'description': 'Kilos',
    'author': 'My Name',
    'url': 'URL to get it at.',
    'download_url': 'Where to download it.',
    'author_email': 'My email.',
    'version': '0.1',
    'install_requires': ['nose'],
    'packages': ['Kilos'],
    'scripts': ['bin/Birds.py'],
    'name': 'Kilos'
}

setup(**config)
其次,我的setup.py脚本如下所示

 Kilos/
      Kilos/
          __init__.py
      bin/
          Birds.py
      docs/
      setup.py
      tests/
          __init__.py
          Kilos_tests.py
try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

config = {
    'description': 'Kilos',
    'author': 'My Name',
    'url': 'URL to get it at.',
    'download_url': 'Where to download it.',
    'author_email': 'My email.',
    'version': '0.1',
    'install_requires': ['nose'],
    'packages': ['Kilos'],
    'scripts': ['bin/Birds.py'],
    'name': 'Kilos'
}

setup(**config)

这是我的问题。除非我将Birds.py从/bin移动到包含“setup.py”的根Kilos文件夹并更改其在安装程序中的位置,否则在安装模块后,我将无法导入它。我希望能够在Birds.py位于bin文件夹中时访问它。我知道我肯定忽略了一些非常简单的事情,但这让我发疯。如果有人能告诉我这件事哪里出了问题,我将不胜感激。提前谢谢你

您是否尝试过使用bin文件夹中的_init__u; py.py文件

而且,文件上说

脚本是包含Python源代码的文件,打算从命令行启动

所以,也许它不打算让您在安装后导入它们


也许你想要的是。。。py_modules=['bin.Birds']和bin/

中的uuu init_uuuuuuuuuuuuuuuuuuuuuuuuupy文件您是否尝试过使用bin文件夹中的uuuuuu init_uuuuuuuuuuuuuuuuuuuuuuuuu

而且,文件上说

脚本是包含Python源代码的文件,打算从命令行启动

所以,也许它不打算让您在安装后导入它们


也许你想要的是。。。py_modules=['bin.Birds']在bin/

中有一个uu init_uu.py文件,我刚刚在bin文件夹中添加了一个init,但不幸的是结果相同。您是否尝试过py_modules:['bin.Birds']并包含u init_u.py?bin/文件夹用于二进制文件/程序,而不是用于模块。如果Birds是一个要由其他模块导入的模块,那么bin/就不是该文件的正确位置。我刚刚在bin文件夹中添加了一个init,不幸的是得到了相同的结果。您是否尝试过py_模块:[“bin.Birds”]并包含了_init_u.py。bin/文件夹用于二进制文件/程序,而不是用于模块。如果BIRD是一个要由其他模块导入的模块,则bin/不是该文件的正确位置。bin/文件夹中的文件不是要导入的,而是要安装为要执行的程序。bin/文件夹中的文件不是要导入的,而是要安装为要执行的程序。