The ctypes module is used on windows to calculate free disk space, so it must be imported. Signed-off-by: Dennis Kaarsemaker <dennis@xxxxxxxxxxxxxxx> --- git-p4.py | 1 + 1 file changed, 1 insertion(+) On di, 2015-10-20 at 09:00 -0700, Junio C Hamano wrote: > Luke Diamand <luke@xxxxxxxxxxx> writes: > > > On 20 October 2015 at 11:34, Etienne Girard < > > etienne.g.girard@xxxxxxxxx> wrote: > > > Hello, > > > > > > Git-p4 fail when I try to rebase with the error: "NameError: > > > global > > > name 'ctypes' is not defined". The error occurs when I use python > > > 2.7.2 that is installed by default on my company's computers (it > > > goes > > > without saying that everything works fine with python 2.7.10). > > > > > > I'm a beginner in python, but simply importing ctypes at the > > > beginning > > > of the script does the trick. I was wondering if submitting a > > > patch > > > for this issue is worth the trouble, when a satisfying solution > > > is not > > > using a 4 years old version of python. > > > > If you're able to submit a patch that would be great! > > Lars's (git-p4: check free space during streaming, > 2015-09-26) introduced two references to ctypes.* and there is no > 'import ctypes' anywhere in the script. > > I do not follow Python development, but does the above mean that > with recent 2.x you can say ctypes without first saying "import > ctypes"? It feels somewhat non-pythonesque that identifiers like > this is given to you without you asking with an explicit 'import', > so I am puzzled. No, you cannot do that. The reason others may not have noticed this bug is that in git-p4.py, ctypes is only used on windows. 111 if platform.system() == 'Windows': 112 free_bytes = ctypes.c_ulonglong(0) 113 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, None, ctypes.pointer(free_bytes)) The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's on the same system). But this patch should help. diff --git a/git-p4.py b/git-p4.py index daa60c6..212ef2b 100755 --- a/git-p4.py +++ b/git-p4.py @@ -24,6 +24,7 @@ import shutil import stat import zipfile import zlib +import ctypes try: from subprocess import CalledProcessError -- 2.6.2-323-g60bd420 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html