Development infrastructure - need python packaging gurus help, please

E

Eugene Sajine

Hi!

I'm trying to create a development infrastructure that would allow for simple and unified ways of sharing, *deploying* and *reusing* the code within private entity. I can see that pip with virtual environments and requirements.txt is very similar to dependency management provided by maven or apache ivy. But there seems to be a disconnect between the egg carrying the possibility to be importable and executable, but in the same time considered to be deprecated format which is not fully supported by pip and virtualenv and wheel not having those basic questions answered...

Here is what i'm trying to achieve:
1. I want to be able to specify the set of dependencies for the project i'mcurrently developing and make them available for the import. Think java jar - having it in class path allows for the code reuse (import packages provided) as well as for the execution.
2. I want to be able to put the newly created project in a form of artifactin a some central location from which it can be taken to be imported or executed or included into "class path". Again think java jar. If i have it insome location i can use ivy or maven to manage the dependencies and provide it to me upon request
3. I want to be able to deploy the program and execute it.

So the problem with all this as i see it:
The importable and executable format is egg, but it is deprecated!
Sane dependency management is pip and virtualenv, but they don't support eggs fully (pip install --egg is having the disclaimer that it s not working ok sometimes) wheel is pretty much unusable for anything other then installing into the virtualenv.

Am i missing something?

Thanks in advance,
Eugene
 
D

dieter

Eugene Sajine said:
...
Here is what i'm trying to achieve:
1. I want to be able to specify the set of dependencies for the project i'm currently developing and make them available for the import. Think java jar - having it in class path allows for the code reuse (import packages provided) as well as for the execution.
2. I want to be able to put the newly created project in a form of artifact in a some central location from which it can be taken to be imported or executed or included into "class path". Again think java jar. If i have it in some location i can use ivy or maven to manage the dependencies and provide it to me upon request
3. I want to be able to deploy the program and execute it.

You may have a look at "zc.buildout" - it may support your
development needs.

Once the development is complete, a so called "meta-egg" may
be used to describe the finished program. A "meta-egg" does not
have (significant amounts of) code but essentially states
dependencies of other eggs.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,898
Latest member
BlairH7607

Latest Threads

Top