[Distutils] docs on using setuptools in a release cycle with RPMS
Noah Gift
noah.gift at gmail.com
Thu Jan 17 21:04:04 CET 2008
>>>
>> In order to create an egg, to my knowledge, you create a build/lib
>> directory and place your scripts or library inside, then run
>> setup.py bdist_egg.
>
> Where did you get that knowledge? We should correct whatever source
> you got that from, because that is absolutely *not* the way to do
> it, and is in fact a good way to lose your work. (E.g. "setup.py
> clean" will delete it.)
I may have just assumed this, by looking at examples and reading
output from stdout. This may have been a trial and error solution, so
I am glad I asked and found out this was incorrect. Of course, I come
from a R/D and Systems Administration background so I am pretty used
to doing really, really bad things I am not supposed to do :)
>
>> That is correct. I am able to create eggs with entry points that
>> work just fine without specifying my module, but are you saying
>> that in order to use the bdist_rpm command that I also need to
>> include:
>>
>> py_modules=['liten']
>
> No, what I'm saying is that you should have that line in your
> setup.py, period, and you should not mess with the contents of build/
> lib or really *anything* under build. The build/ directory is used
> by the distutils to build things. Your source code goes directly
> alongside setup.py, generally speaking.
Ok, this is good to know. That is much more intuitive. I may have
run into some issue that made me think creating a build/lib directory
would help.
> You may want to review the "Distributing Python Modules"
> documentation at:
>
> http://docs.python.org/dist/
>
> As you'll find there, there is no mention of putting things into
> build/ - you put things in the directory where your setup.py is, and
> the distutils (or setuptools) are responsible for copying them into
> build/ and other places. There are absolutely no user-serviceable
> parts in build/.
>
> What you've been doing is a bit like taking a power drill and then
> turning it by the handle instead of plugging it in and pulling the
> trigger. In some cases it may seem to be work, but mostly you are
> just making things harder than they need to be. :)
>
Believe it or not, I am writing a chapter on Eggs, Buildout, and
Virtualenv for our O'Reilly book. I hope to do a good job of
explaining how to use eggs/buildout/virtualenv and build RPM's and
other packages such as AIX/HP-UX, Debian/Ubuntu. I might be asking a
few more dumb questions, so I will try to read as much as I can to
limit the total number. I think a large source of confusion for me,
was thinking that distutils was somehow deprecated, and that I don't
even need to read the docs. I have heard so many horror stories about
distutils, that I have mistakenly thought they are somehow broken
badly, and it is not worth reading, and that they are replaced by
setuptools. I suppose there is going to be some confusion for me in
trying to understand the intersection between disutils and setuptools,
as I am not sure what I am expected to know from distutils and what
setuptools replaces. I was operating under, obviously a false
assumption, that setuptools was the was forward and was completely
ignoring distutils.
ok, off to read the distutils docs....
More information about the Distutils-SIG
mailing list