Модуль 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= 'elssar@altrawcode.com',
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',
],
)
Я пытался использовать оба setuptools
а также distutils
, но это не установит мой модуль. Вместо этого я получаю
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
Просто чтобы убедиться, что в моей системе нет ничего плохого, я скачал с github два пакета с похожим setup.py
и установил их. Устанавливается без проблем.
2 ответа
Я не могу бежать setup.py
из другого каталога. Он должен быть запущен из каталога, в котором он находится. В этом была проблема.
Исправлена.
Если я понимаю ваш макет, проблема в том, что вы используете по умолчанию package_dir
, что означает, что модули верхнего уровня, такие как module
должен быть в корневом каталоге как module.py
не как module/module.py
,
Итак, добавьте это:
package_dir = {'': 'module'}
Теперь он будет искать module
как module/module.py
,
(PS, все это было бы намного менее запутанным, чтобы обсудить, если бы ваш модуль, или его подкаталог, или в идеале оба, назывались как-то иначе, чем "модуль". Также, если вы использовали более стандартный формат для отрисовки своего дерева каталогов.)
Это объясняется в листинге целых пакетов. (Я понимаю, что вы перечисляете отдельные модули, а не целые пакеты, но документы для этого раздела просто говорят "снова, вы можете переопределить соответствие пакета / каталога, используя опцию package_dir", ссылаясь на раздел, на который я ссылался. И ссылка за package_dir
еще менее полезен; он просто говорит "Отображение пакета в имена каталогов".)