Code Monkey home page Code Monkey logo

Comments (4)

neogeographica avatar neogeographica commented on August 31, 2024

So the difference in the above errors is probably because the virtualenv has setuptools 0.9.8, and the "real" environment has setuptools 1.3.2.

Upgrading to setuptools 1.4 gets further. This looks promising:

python setup.py bdist_wininst -p win32

It does print this warning:

Warning: Can't read registry to find the necessary compiler setting
Make sure that Python modules _winreg, win32api or win32con are installed.
removing 'build/bdist.macosx-10.9-intel/wininst' (and everything under it)

...but I think I can ignore that for a pure Python module with no C code to compile.

Next steps: bring the generated installer over to a Windows system, check to see if it really is a win32 exe, check that it installs and works for both 2.6 and 2.7 (for issue #3).

from expak.

neogeographica avatar neogeographica commented on August 31, 2024

The installer seems to be good, but it can't find Python 2.6 in the registry. Only 2.7.

2.7 has its registry entries under HKEY_CURRENT_USER, while 2.6 is under HKEY_LOCAL_MACHINE, so I imagine that difference is the issue.

This seems to be a limitation of the installer program that is bundled when specifying "-p win32", when the bdist is built either on OS X or on Win 7. I just tried the default platform win-amd64 on Win 7, and that generates an installer that can see both 2.6 and 2.7. I wouldn't be surprised if the same would be true for the OS X cross-compile. However, it's a 64-bit installer. Which is probably fine as a limitation -- who still runs 32-bit Windows?***** -- but it's kind of annoying when installing a pure Python module.

(Although the install does also create simple_expak.exe at some point. I don't yet know how that is done, but the 32-bit installer seems to create a 64-bit simple_expak.exe that works just fine.)

SO MUCH FUN. For minimal headaches/surprises the answer may be to generate both a 32-bit and 64-bit installer.

***** answer: probably a significant overlap with people who still mess around with Quake

from expak.

neogeographica avatar neogeographica commented on August 31, 2024

As the cherry on top, the OS X cross-compile can only do win32, not win-amd64. Choosing "-p win-amd64" results in:

error: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/wininst-6.0-amd64.exe: No such file or directory

I think the code that generates that "6.0" is goofed up for non-Windows versions of Python though. It comes from distutils.msvccompiler.get_build_version, which looks for the "MSC v." substring in sys.version, which isn't present in OS X Python (because it was built with gcc). Since it doesn't find it, it assumes MSVC version 6 was used to build this Python, which it then assumes is relevant for the target system. This error may not matter at all for a pure Python module installer, and I could work around it by moving/renaming the wininst files in my Python installation. But it's kind of a worrisome error, like... what else is off-kilter in this process?

Edit: another workaround would be to override distutils.msvccompiler.get_build_version in setup.py.

from expak.

neogeographica avatar neogeographica commented on August 31, 2024

Handled by commit 705cc59.

from expak.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.