Comments (5)
How about relying on pip...
from passa.
AFIK pip does not support non-setuptools based editable install either. Also since I’m already thinking about breaking away from pip anyway…
from passa.
Literally just had this convo on an issue. Of course it does. You literally can’t actually build editable installs without first installing the specified build tools. That was the point of the PEP.
Whether you want to break from pips internals or not it seems silly to think you can build a thing that knows how every possible build system would work. The whole point is you won’t have to. The build system itself supplies an sdist or a wheel. Are you saying we can read dependencies from those?
from passa.
Build a flit project and try to pip install -e
it yourself. It does not work. Period.
pip install -e
only works for setuptools-based projects. The project may have build tools declaration (PEP 518), but to be editable-installed, the build tool needs to be setuptools. This is a fact.
from passa.
The challenge of editable installs has basically nothing to do with how you link source code into a virtualenv which is why we are talking past each other. You’re talking about putting a path file in a virtualenv which is fine, but also not that important. The real distinguishing feature here is how the code gets turned into a distributable package, because that is how dependencies are computed.
I’ve spent a good amount of time on this today and I wound up at the same conclusion as the folks in the pip issue— and it’s the same exact approach you are already taking which is why I don’t see the problem. The various build systems all have defined hooks for building wheels. You already know what to with a wheel. For things that are not defined in this way, yes, we will need to fall back to setuptools. That’s not surprising given that it was the default for many years and most projects won’t make any changes.
It’s ok to use another persons libraries to do the things they are built for, e.g. pip and setuptools. Both of those are bundled with python now, even, so it really feels like they are probably sane fallbacks and we don’t have to over engineer this. Otherwise we will wind up being unable to install basic python sdists........
from passa.
Related Issues (20)
- Better error messaging if the Pipfile is invalid
- Better error messaging (or more eager validation) for invalid requirement lines
- Allow prereleases if the specifier contains a prerelease version HOT 4
- Prerelease fallback when no versions are found is broken
- Requirement conflicts when mixing named and non-named specification for a package HOT 4
- [Future] Investigate replacing pip internals HOT 3
- freeze result should order packages by (normalized) name, not the formatted line
- Review how non-named requirements are locked into candidates HOT 1
- Maybe project should not require Pipfile? HOT 2
- Better error reporting when wheel building fails
- [Future] PEP 517 support HOT 1
- [Future] Investigate dependency graph implementation in distlib HOT 2
- Hash-fetching needs to reuse connections better HOT 1
- Running `add` against projects with no lockfile fails
- Write some integration tests HOT 3
- Packing tests are failing HOT 6
- Warn about invalid extras during locking HOT 2
- Passa lock fails due to KeyError HOT 1
- Support both & and | for metasets merging.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from passa.