This is my setup.py
file
#!/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',
],
)
I have tried using both setuptools
and distutils
, but this won't install my module. Instead I get
file module.py (for module module) not found
This is my directory structure
/module
|--/test
|--README.md
|--license.txt
|--module.py
|--setup.py
Just to be clear, module is the root directory.
Can anyone tell me what I'm doing wrong?
This is the output when I try to install
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
Just to be sure there isn't something wrong my my system, I downloaded two packages from github with a similar setup.py
and installed them. Installed without any problems.
This is caused by the fact that the version of Python you're running your script with is not configured to search for modules where you've installed them. This happens when you use the wrong installation of pip to install packages.
One of the most common problems with running Python tools like pip is the “not on PATH” error. This means that Python cannot find the tool you're trying to run in your current directory. In most cases, you'll need to navigate to the directory in which the tool is installed before you can run the command to launch it.
The best and recommended way to install Python modules is to use pip, the Python package manager. Otherwise: Download get-pip.py from https://bootstrap.pypa.io/get-pip.py. Run python get-pip.py.
I cannot run setup.py
from a different directory. It needs to be run from the directory it is in. That was the problem here.
Fixed.
If I understand your layout, the problem is that you're using the default package_dir
, which means that top-level modules like module
need to be in the root directory as module.py
, not as module/module.py
.
So, add this:
package_dir = {'': 'module'}
Now, it'll look for module
as module/module.py
.
(PS, this would all be a lot less confusing to discuss if your module, or its subdirectory, or ideally both, were called something other than "module". Also, if you used a more standard format for drawing your directory tree.)
This is explained in Listing whole packages. (I realize you're listing individual modules, not whole packages, but the docs for that section just say "again, you can override the package/directory correspondence using the package_dir option", referring back to the section I linked. And the reference for package_dir
is even less helpful; it just says "A mapping of package to directory names".)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With