web-dev-qa-db-ja.com

Pythonモジュールはインストールされません

これは私のsetup.pyファイルです

#!/usr/bin/env python

from setuptools import setup
from sys import path

setup(name= 'conundrum',
    version= '0.1.0',
    author= 'elssar',
    author_email= '[email protected]',
    py_modules= ['conundrum'],
    url= 'https://github.com/elssar/conundrum',
    license= 'MIT',
    description= 'A framework agnostic blog generator.',
    long_description= open(path[0]+'/README.md', 'r').read(),
    install_requires= [
        'PyYAML >= 3.0.9',
        'Markdown >= 2.2.0',
        'requests >= 1.0.4',
        ],
)

setuptoolsdistutilsの両方を使用しようとしましたが、モジュールがインストールされません。代わりに私は得る

file module.py (for module module) not found

これは私のディレクトリ構造です

/module
|--/test
|--README.md
|--license.txt
|--module.py
|--setup.py

明確にするために、モジュールはルートディレクトリです。

誰かが私が間違っていることを教えてもらえますか?

これは私がインストールしようとしたときの出力です

elssar@elssar-laptop:/usr/local/src/conundrum$ Sudo python /home/elssar/code/conundrum/setup.py install
/usr/lib/python2.6/distutils/dist.py:250: UserWarning: 'licence' distribution option is deprecated; use 'license'
  warnings.warn(msg)
running install
running bdist_Egg
running Egg_info
writing requirements to conundrum.Egg-info/requires.txt
writing conundrum.Egg-info/PKG-INFO
writing top-level names to conundrum.Egg-info/top_level.txt
writing dependency_links to conundrum.Egg-info/dependency_links.txt
warning: manifest_maker: standard file 'setup.py' not found
file conundrum.py (for module conundrum) not found
reading manifest file 'conundrum.Egg-info/SOURCES.txt'
writing manifest file 'conundrum.Egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/Egg
running install_lib
running build_py
file conundrum.py (for module conundrum) not found
file conundrum.py (for module conundrum) not found
warning: install_lib: 'build/lib.linux-x86_64-2.6' does not exist -- no Python modules to install
creating build/bdist.linux-x86_64/Egg
creating build/bdist.linux-x86_64/Egg/EGG-INFO
copying conundrum.Egg-info/PKG-INFO -> build/bdist.linux-x86_64/Egg/EGG-INFO
copying conundrum.Egg-info/SOURCES.txt -> build/bdist.linux-x86_64/Egg/EGG-INFO
copying conundrum.Egg-info/dependency_links.txt -> build/bdist.linux-x86_64/Egg/EGG-INFO
copying conundrum.Egg-info/requires.txt -> build/bdist.linux-x86_64/Egg/EGG-INFO
copying conundrum.Egg-info/top_level.txt -> build/bdist.linux-x86_64/Egg/EGG-INFO
Zip_safe flag not set; analyzing archive contents...
creating 'dist/conundrum-0.1.0-py2.6.Egg' and adding 'build/bdist.linux-x86_64/Egg' to it
removing 'build/bdist.linux-x86_64/Egg' (and everything under it)
Processing conundrum-0.1.0-py2.6.Egg
removing '/usr/local/lib/python2.6/dist-packages/conundrum-0.1.0-py2.6.Egg' (and everything under it)
creating /usr/local/lib/python2.6/dist-packages/conundrum-0.1.0-py2.6.Egg
Extracting conundrum-0.1.0-py2.6.Egg to /usr/local/lib/python2.6/dist-packages
conundrum 0.1.0 is already the active version in easy-install.pth

Installed /usr/local/lib/python2.6/dist-packages/conundrum-0.1.0-py2.6.Egg
Processing dependencies for conundrum==0.1.0
Searching for requests==1.0.4
Best match: requests 1.0.4
Adding requests 1.0.4 to easy-install.pth file

Using /usr/local/lib/python2.6/dist-packages
Searching for Markdown==2.2.0
Best match: Markdown 2.2.0
Processing Markdown-2.2.0-py2.6.Egg
Markdown 2.2.0 is already the active version in easy-install.pth
Installing markdown_py script to /usr/local/bin

Using /usr/local/lib/python2.6/dist-packages/Markdown-2.2.0-py2.6.Egg
Searching for PyYAML==3.10
Best match: PyYAML 3.10
Adding PyYAML 3.10 to easy-install.pth file

Using /usr/local/lib/python2.6/dist-packages
Finished processing dependencies for conundrum==0.1.0

システムに問題がないことを確認するために、同様のsetup.pyを使用してgithubから2つのパッケージをダウンロードしてインストールしました。問題なくインストールされました。

15
elssar

実行できませんsetup.py別のディレクトリから。それが置かれているディレクトリから実行する必要があります。それがここでの問題でした。

修繕。

16
elssar

レイアウトを理解している場合、問題はデフォルトのpackage_dirを使用していることです。つまり、moduleのようなトップレベルモジュールはルートディレクトリにmodule.pyとして存在する必要があります。 module/module.pyではありません。

だから、これを追加します:

package_dir = {'': 'module'}

ここで、modulemodule/module.pyとして検索します。

(PS、これはすべて、モジュールまたはそのサブディレクトリ、あるいは理想的には両方が「モジュール」以外の名前で呼ばれているかどうかを議論するのにはるかに混乱しません。また、ディレクトリツリーの描画に、より標準的な形式を使用した場合。)

これは パッケージ全体のリスト で説明されています。 (パッケージ全体ではなく、個々のモジュールをリストしていることに気付きましたが、そのセクションのドキュメントには、リンクしたセクションを参照して、「ここでも、package_dirオプションを使用してパッケージ/ディレクトリの対応をオーバーライドできます」と書かれています。 reference for package_dirはさらに役に立ちません。「パッケージからディレクトリ名へのマッピング」とだけ表示されます。)

4
abarnert