Get a Python Package Version
Part of maintaining a Django-based application like MDN's kuma is ensuring Python packages are up to date. I was recently testing an upgrade on a remote system and needed to ensure that a given Python package was at the version number it should be. Here's how I retrieved the package version:
import nose # Nose is a test utility. Replace with your desired package here.
nose.__version__
# Output: 0.3.1
The __version__ property returns the exact version number for a Python package. Some Python packages use a VERSION property as well, but __version__ should be the most reliable.
![Page Visibility API]()
One event that's always been lacking within the document is a signal for when the user is looking at a given tab, or another tab. When does the user switch off our site to look at something else? When do they come back?
![5 Ways that CSS and JavaScript Interact That You May Not Know About]()
CSS and JavaScript: the lines seemingly get blurred by each browser release. They have always done a very different job but in the end they are both front-end technologies so they need do need to work closely. We have our .js files and our .css, but...
![Creating Spacers with Flexbox]()
I was one of the biggest fans of flexbox before it hit but, due to being shuffled around at Mozilla, I never had the chance to use it in any practice project; thus, flexbox still seems like a bit of a mystery to me. This greatly...
![Multiple File Upload Input]()
More often than not, I find myself wanting to upload more than one file at a time. Having to use multiple "file" INPUT elements is annoying, slow, and inefficient. And if I hate them, I can't imagine how annoyed my users would be. Luckily Safari, Chrome...
Every once in a while a package might not define either
VERSIONor__version__, since they’re conventions, not required. You can always get the installed version with pkg_resources, though:>>> import pkg_resources >>> pkg_resources.get_distribution("PIL").version '1.1.7'@James,
__version__is recommended by PEP 396