Python 3.x in Cygwin? - windows

I have the python package in Cygwin on Windows 7. However, typing
python -V
returns
Python 2.6.8
This is a pretty low version of Python... I could use Python 3.x (whatever version is newest, preferably). I've seen some people say you have to download a .zip or .tar manually to get it (similar to this question). My questions are as follows (please note this is NOT a duplicate of the linked question):
Can I get Python 3.x somehow using the Cygwin package manager?
Can/should I get rid of Python 2.6 if I manage to get Python 3.x running? None of my code runs on anything specific to Python 2.6.
Thanks

As others have noted, the version of Python 2.6 that's installed with Cygwin is recent; Python release numbers are not linear with respect to time. The Python releases page details which versions were released on which date.
You can install Python3 if you want, using Cygwin Ports. This is a collection of Cygwin packages that are not ready for general release on the main Cygwin mirrors, but have been compiled ready to be used on Cygwin. I've written some instructions over on SuperUser which describe in more detail how to do this.
(I'd avoid installing from source, as Lennart suggests, as I'd expect this will require non-trivial fixes to make it work on Cygwin.)
As noted in the above-linked SuperUser question, there's no need to uninstall Python 2.6 to install Python 3; the two run happily side-by-side.
That said, beware your claim that "None of my code runs on anything specific to Python 2.6": Python 3.x is not back compatible with Python 2.x, and code written for Python 2.x will generally not work on Python 3.x without work to adapt it. The Python 3.0.1 What's New Guide has a good overview of the changes in Python 3.x.
Update: As of Wed 25 July 2012, Python 3.2.3 is included in the standard Cygwin installer. Just run Cygwin's setup.exe again (download it from cygwin.com again if you need to), and you should be able to select and install it like any other package.

Related

Install graph-tool on Mac OS, graph drawing issue

In the end, created an env to install graph-tool thru the channel vgauthier.
Thinking by now that I might have as well used earlier version of python or installed a whole new python latest version just for this.
But as it is all part of the learning process to creating dev. env.. (at the same time worrying my Mac has too many installations with much too interlinked dependencies)
Someone kindly let me know if this rings any bell or got any suggestion:
Incompatible library version states that _cairo.cpython-36m-darwin.so requires later version of libcairo.2.dylib.
Errors could have been from:
having on .condarc file, wrong priorities btw channels, so having trouble finding the right files
(modified to the order of conda-forge > ~dir/vgauthier > default
my having given up on installing pygobject after googling it is not supported on Mac OS (which was apparently wrong or I just wasnt searching well)
Solution to easy setup of graph-tool for conda-installed python users:
Get the benefit of GUI (seriously a god option) ->
https://medium.com/#ronie/installing-graph-tool-for-python-3-on-anaconda-3f76d9004979
To still continue with command line (still get the idea from GUI)
conda install -c pkgw-forge gtk3
conda install -c https://conda.anaconda.org/fallen pygobject
(if there are cairo blah blah missing, look up setup directions for igraph which has more information and help, having been an older library)
Do these before installing graph-tool, which Im still wondering why I cannot remove from the system though. ;)
For others, https://git.skewed.de/count0/graph-tool/wikis/installation-instructions#compiler-choice-in-macos-x

Multiple versions of Python 2.7 on Windows 10

I found many questions here about installing multiple versions of Python on the same machine, but I could not find a solution to my issue. I have Python 2.7.9 already installed (in c:\python27) and I want to perform some tests with Python 2.7.6, so I have also installed this version (in c:\python276). I run c:\Python276\python.exe --version but I am still getting Python 2.7.9
It's more likely that
c:\windows\system32\python27.dll is the Python 2.7.9 version, and that's what is getting loaded by Python.exe (any 2.7.x version). I've never tried to have multiple 2.7.x versions at the same time, but since I can't find any copies of python27.dll in under c:\Python27\, my best suggestion is to completely uninstall all Python versions, then install them in ascending version order (i.e., 2.7.6, then 2.7.9), saving copies of c:\windows\system32\python27.dll at each step. To run a particular minor version, make sure the appropriate python27.dll is the first one found on your path; you may want to capture all of c:\python27\ as well, just to be sure you have consistent versions.

How to use binary python installers for a mismatching python version?

I need to run a 64bit binary python installer for windows (reportlab‑2.7.win‑amd64‑py2.6.exe) downloaded from http://www.lfd.uci.edu/~gohlke/pythonlibs/.
Unfortunately, I have 64bit python 2.7 installed and can't switch to python 2.6. For compatibility reasons, I also can't switch to the reportlabs package for python 2.7. I am sure that the python 2.6 package is compatible with python 2.7.
The .exe installer won't install since it does not find python 2.6 in the registry. Is there anything I can do?
According to this post and this post, I created the following registry file code to set the required registry keys.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Python]
[HKEY_CURRENT_USER\Software\Python\Pythoncore]
[HKEY_CURRENT_USER\Software\Python\Pythoncore\2.6]
[HKEY_CURRENT_USER\Software\Python\Pythoncore\2.6\InstallPath]
#="C:\\Python27"
[HKEY_CURRENT_USER\Software\Python\Pythoncore\2.6\PythonPath]
#="C:\\Python27;C:\\Python27\\Lib\\;C:\\Python27\\DLLs\\"
Save this as a .reg file (e.g. "file.reg") and run it.
Basically, this file stores in the registry that python 2.6 is installed in the python 2.7 folders. You may have to adapt the paths.
After the registry keys were set, I was able to install the 64bit reportlabs package using the binary installer for python 2.6 with a python 2.7 installation. I didn't encounter any compatibility issues.
If you want to use this way for 32bit python, see the above mentioned posts.

Installing OpenCV on Windows 7 for Python 3.2.3 [duplicate]

am trying desperately to get OpenCV to work on Windows 7. I download and installed it, and it didn't work, I got
ImportError: No module named opencv
when I tried to run one of the samples. I google my problem and got only random solutions that don't work. Can anybody guide me in installing it, or know where i can get a clear installation guide design for a programming noob.
As of OpenCV 2.2.0, the package name for the Python bindings is "cv".The old bindings named "opencv" are not maintained any longer. You might have to adjust your code. See http://opencv.willowgarage.com/wiki/PythonInterface.
The official OpenCV installer does not install the Python bindings into your Python directory. There should be a Python2.7 directory inside your OpenCV 2.2.0 installation directory. Copy the whole Lib folder from OpenCV\Python2.7\ to C:\Python27\ and make sure your OpenCV\bin directory is in the Windows DLL search path.
Alternatively use the opencv-python installers at http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv.
I have posted a very simple method to install OpenCV 2.4 for Python in Windows here : Install OpenCV in Windows for Python
It is just as simple as copy and paste. Hope it will be useful for future viewers.
Download Python, Numpy, OpenCV from their official sites.
Extract OpenCV (will be extracted to a folder opencv)
Copy ..\opencv\build\python\x86\2.7\cv2.pyd
Paste it in C:\Python27\Lib\site-packages
Open Python IDLE or terminal, and type
>>> import cv2
If no errors shown, it is OK.
UPDATE (Thanks to dana for this info):
If you are using the VideoCapture feature, you must copy opencv_ffmpeg.dll into your path as well. See: https://stackoverflow.com/a/11703998/1134940
I have posted an entry to setup OpenCV for Python in Windows:
http://luugiathuy.com/2011/02/setup-opencv-for-python/
Hope it helps.
Actually you can use x64 and Python 2.7. This is just not delivered in the standard OpenCV installer. If you build the libraries from the source (http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html) or you use the opencv-python from cgohlke's comment, it works just fine.
download the opencv 2.2 version from https://sourceforge.net/projects/opencvlibrary/files/opencv-win/
install package.
then Copy cv2.pyd to C:/Python27/lib/site-packeges.
and it should work:
import cv2
open command prompt and run the following commands (assuming python 2.7):
cd c:\Python27\scripts\
pip install opencv-python
the above works for me for python 2.7 on windows 10 64 bit
One thing that needs to be mentioned. You have to use the x86 version of Python 2.7. OpenCV doesn't support Python x64. I banged my head on this for a bit until I figured that out.
That said, follow the steps in Abid Rahman K's answer. And as Antimony said, you'll need to do a 'from cv2 import cv'
Installing OpenCV on Windows 7 for Python 2.7

Python executables: py2exe or PyInstaller?

To create executable files (windows) I assume that we should use one of them:
Py2exe or PyInstaller.
What are the difference between them?
Py2exe and PyInstaller both are wrappers but here are few differences that I noticed,
Py2exe is compatible with python2.4+ including python3.0 & 3.1 whereas PyInstaller is currently, compatible with python 2.7 and 3.3–3.5
As far I know, Py2exe didn't support signing whereas Pyinstaller has support for signing from version 1.4
In PyInstaller it is easy to create one exe, By default both create a bunch of exes & dlls.
In py2exe its easier to embed manifest file in exe, useful for run as administrator mode in windows vista and beyond.
Pyinstaller is modular and has a feature of hooks to include files in the build that you like. I don't know about this feature in py2exe.
Hope this helps you in your decision making.
[Update] - It looks like PyInstaller is actively developed (https://github.com/pyinstaller/pyinstaller/) and released. py2exe is still using sourceforge and its release cycle is very random on pypi there is no build after 2014 and their code show development in 2017 as well (https://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/py2exe-3/py2exe/). So, I recommend using pyinstaller till the time py2exe stabilizes its release cycle in favor of developers.
There is a fork of py2exe that is being actively developed to support ongoing versions of Python, https://github.com/albertosottile/py2exe, currently at v0.9.3.2 which works with Python 3.7.
I've used it on a small project and it works as expected, producing a working executable. Download the correct version from the releases page and install with pip.
Update 2020-11-06:
As per LolPython's comment, this fork now redirects to the official repo so use that instead:
https://github.com/py2exe/py2exe
From the message of the wikipedia,py2exe is not active for long time :
Stable release: 0.9.2.2 for Python 3 /; 21 October 2014; 0.6.9 for Python 2 /; 15 November 2008
So I advise to use the pyinstaller.....
But now the pyinstaller also meet the problemThe offical website of pyinstaller:
Help keeping PyInstaller alive: Maintaining PyInstaller is a huge amount of work. PyInstaller development can only continue if users and companies provide sustainable funding. See Funding PyInstaller for how to support PyInstaller.

Resources