1

私はかなり単純なPythonプロジェクトを構築しようとしています。

  • システム全体のコマンドdynamic-dynamodbがインストールされています
  • そのコマンドはdynamic_dynamodb.main:main

私のプロジェクトは次のようになります。

.
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README -> README.md
├── README.md
├── dynamic_dynamodb
│   ├── __init__.py
│   ├── dynamic_dynamodb.py
│   └── main.py
├── example-dynamic-dynamodb.conf
├── requirements.txt
└── setup.py

ルートフォルダにPythonファイルが1つしかない場合は、正常に動作するようになりました。しかし、プロジェクトが成長したとき、私はコードを分割してモジュール(つまりフォルダーdynamic_dynamodb)に配置する必要がありました。今、私のようにsetup.py見えます:

""" Setup script for PyPI """
from setuptools import setup, find_packages


setup(name='dynamic-dynamodb',
    version='0.3.0-SNAPSHOT',
    license='Apache License, Version 2.0',
    description='Automatic provisioning for AWS DynamoDB tables',
    author='Sebastian Dahlgren',
    author_email='sebastian.dahlgren@gmail.com',
    url='http://sebdah.github.com/dynamic-dynamodb/',
    keywords="dynamodb aws provisioning amazon web services",
    platforms=['Any'],
    py_modules=['dynamic_dynamodb'],
    packages=find_packages('dynamic_dynamodb'),
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'boto >= 2.6.0'
    ],
    classifiers=[
        'Development Status :: 4 - Beta',
        'Environment :: Console',
        'License :: OSI Approved :: Apache Software License',
        'Operating System :: OS Independent',
        'Programming Language :: Python'
    ],
    entry_points={
        'console_scripts': [
            'dynamic-dynamodb = dynamic_dynamodb.main:main',
        ]
    }
)

問題は、でビルドするとpython setup.py sdist次のエラーが表示されることです。

file dynamic_dynamodb.py (for module dynamic_dynamodb) not found

誰かが私を正しい方向に蹴るための指針を持っていますか?

4

1 に答える 1

3

このガイドに従って問題を解決しました:http ://wiki.python.org/moin/Distutils/Tutorial

スプリングポイントは次のとおりです。

  • ルートディレクトリに新しいスクリプトを作成します(これはサイト全体でアクセス可能なスクリプトになります)
  • py_modulesで使用する必要はありませんsetup.py。パッケージを使用するだけです。
  • 機能distutilsが必要ないので今使っていますsetuptools

私の新しいsetup.py

""" Setup script for PyPI """
from distutils.core import setup


setup(name='dynamic-dynamodb',
    version='0.3.0-SNAPSHOT',
    license='Apache License, Version 2.0',
    description='Automatic provisioning for AWS DynamoDB tables',
    author='Sebastian Dahlgren',
    author_email='sebastian.dahlgren@gmail.com',
    url='http://sebdah.github.com/dynamic-dynamodb/',
    keywords="dynamodb aws provisioning amazon web services",
    platforms=['Any'],
    packages=['dynamic_dynamodb'],
    scripts=['dynamic-dynamodb'],
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'boto >= 2.6.0'
    ],
    classifiers=[
        'Development Status :: 4 - Beta',
        'Environment :: Console',
        'License :: OSI Approved :: Apache Software License',
        'Operating System :: OS Independent',
        'Programming Language :: Python'
    ]
)
于 2013-03-27T13:19:08.697 に答える