(no title)
chrishenn | 11 years ago
It was all fine once I got it worked out but it would so much nicer to provide a requirements.txt file and have pip figure out the ordering and dependency stuff. That and being able to install binary packages in a simple way from pip would make me much happier with python (no more waiting 10 minutes for numpy or whatever to compile).
As far as actual language features go however, I still find python a joy to work in.
yaph|11 years ago
I find the combination of virtual environments and pip very convenient to work with. When I run into trouble with missing dependencies I often find the project on GitHub and can send a pull request.
Regarding Numpy and the scientific Python stack, check out Anaconda https://store.continuum.io/cshop/anaconda/ it makes managing environments where you need these packages a lot less painful.
andreasvc|11 years ago
Derbasti|11 years ago
We really need pip wheels or conda to become mainstream. Pip alone doesn't cut it on platforms without compilers (Windows / OSX). Standalone installers are fine, but they don't resolve dependencies and they are only available for Windows.
I totally agree that the installation and deployment story should be a top priority. Once done, it would be another very compelling point on Python 3's feature list.
pekk|11 years ago
L_Rahman|11 years ago
Ruby installs are especially difficult to manage. Despite the numerous tutorials out there, I still don't know what, if there even is one, the canonically best way to install ruby and necessary gems is. RVM? Install through Brew? Add path to ~/.bashrc?
I say this as someone who likes using command line so much that I've written Caskfiles to automate my deployment to fresh OS X Machines.
pak|11 years ago
Wait, what? On production, install the exact ruby you need from your favorite package manager. On your dev box, install any rubies you need through rbenv [1]. Put all your gem dependencies into a Gemfile [2]. On either end, bundle install [--deployment] and call it a day.
[1]: https://github.com/sstephenson/rbenv
[2]: http://bundler.io/v1.6/gemfile.html
pmontra|11 years ago
thinkpad20|11 years ago
dagw|11 years ago
marcosdumay|11 years ago
Otherwise you are just asking for nasty surprises when packages upgrade.
erichurkman|11 years ago
If you want to keep up to date with security and bug fixes (but aren't yet ready for the next big feature/backwards incompatible release), you can specify the lines as 'package>=1.1,<1.2' to get 1.1.x fix releases.
`pip list --outdated` is helpful, too.
cjg_|11 years ago
andreabedini|11 years ago
chrishenn|11 years ago
ermintrude|11 years ago
BUILD_DIR="/tmp/wheelhouse/$PROJECT" pip wheel --wheel-dir=$BUILD_DIR --find-links=$BUILD_DIR --index=http://$DEVPI_HOST:$DEVPI_PORT/${DEVPI_USER}/${DEVPI_INDEX} --extra-index-url=https://pypi.python.org/simple/ ../$PROJECT
This will try to get packages from your devpi index, but will fall back to pypi if you don't have them.
Then upload this to devpi. It can later be installed by pip with:
pip install --use-wheel --index=http://$DEVPI_HOST:$DEVPI_PORT/${DEVPI_USER}/${DEVPI_INDEX} $PROJECT
This makes deployments super fast because you're deploying pre-built wheels instead of downloading and compiling from pypi. It also gives you resiliance by storing copies of the dependencies you need in devpi, so if they vanish from pypi (or it's unavailable) you can still deploy your software with all the dependencies you developed against.
SoftwareMaven|11 years ago
Unfortunately, that's all I've learned from lurking on the mailing list for a couple weeks.
icebraining|11 years ago
[1] https://github.com/jordansissel/fpm
Keats|11 years ago
Alphasite_|11 years ago
Not the best approach, but it does work.
maaku|11 years ago