3 ms·
> Python AND Ruby to build The `cryptography` library (I'd say quite an important one in the Python ecosystem) requires Python, C and Rust to build, since v3.4
by danuker 3y ago
> Python AND Ruby to build
The `cryptography` library (I'd say quite an important one in the Python ecosystem) requires Python, C and Rust to build, since v3.4.
https://cryptography.io/en/latest/installation/ https://cryptography.io/en/latest/installation/
- Eduard 3y agoThe cherry on top: visiting the https://cryptography.io/en/latest/ https://cryptography.io/en/latest/ landing page, a Python outsider wouldn't be able to tell that this is for Python. A full text search for "python" reveals only a single match hidden at the bottom within the FAQs section; ironically within the context "Why are there no wheels for my Python3.x version?". Most of the other FAQs add to it: - I cannot suppress the deprecation warning that cryptography emits on import - cryptography failed to install! - Why does cryptography require Rust? - Installing cryptography produces a fatal error: 'openssl/opensslv.h' file not found error - cryptography raised an InternalError and I’m not sure what to do? - Installing cryptography with OpenSSL 0.9.8, 1.0.0, 1.0.1, 1.0.2, 1.1.0 fails - Installing cryptography fails with error: Can not find Rust compiler - I’m getting errors installing or importing cryptography on AWS Lambda - Why can’t I import my PEM file? What happened to the backend argument? - Will you upload wheels for my non-x86 non-ARM64 CPU architecture? Python is by far the most platform-dependent, brittle programming environment, and the prime example that the "interpreted languages run everywhere!" trope is increasingly dead. Build nonce, fail everywhere.
- dmvdoug 3y ago> Build nonce, fail everywhere I’m pretty sure that was a typo, but it was an excellent one and I hope it doesn’t change! :)
- kortex 3y agoWhy is this python's problem? You are choosing to use a c/rust accelerated library. If your project were pure c or rust, you would still have to build everything.
- Eduard 3y ago> Why is this python's problem? I meant: "Python *has by far the most platform-dependent, brittle programming environment". > You are choosing to use a c/rust accelerated library. Especially with something as fundamental as `cryptography`, I don't choose it - it is a given through transitive transitive dependencies. > If your project were 𝗽𝘂𝗿𝗲 c or rust, you would still have to build everything. That's the whole point: when developing in programming language XYZ, then stay within XYZ's environment: As much as possible, implement stuff by writing in XYZ, and import other stuff following this principle. Whereas, the moment you or one of your dependencies delegate to other environments, your program inherits and requires additional environments. So many projects and libraries in Python World have taken the latter approach, resulting in so many Python applications being a cobbled-together Frankenstein diva. It will refuse to work on your users' system, until they have the correct rubyenv, and autoconf version, and npm. "Huh, why does the user report a problem with npm when installing my Python application?". Well, that could be because unbeknownst to you, whenever you yourself developed, updated, and ran your program, there was always this tiny dependency of a dependency that needs it - you just didn't know about it until this issue report, because your system already had Node and npm set up correctly. That reporting user's not!