On out-of-date Python Applications

John Machin sjmachin at lexicon.net
Sun Jul 19 11:47:17 EDT 2009


On 20/07/2009 12:24 AM, Virgil Stokes wrote:
> John Machin wrote:
>> On Jul 19, 6:04 pm, Virgil Stokes <v... at it.uu.se> wrote:
>>   
>>> I am not a heavy user of Python; but, I do work with it and some of its
>>> application packages (e.g. PyODE), in an academic setting.
>>> Many of these applications packages have a Windows installer which
>>> usually works fine. However, I also try to keep up with the latest
>>> release of Python, and this is where I often have problems. That is, the
>>> latest Windows installer provided for some of these applications will
>>> not install on the latest version of Python.
>>>     
>>
>> If the package was written for 2.x and "the latest version of Python"
>> means 3.X, this is not surprising; your options are (1) wait until the
>> package maintainer releases a 3.x-compatible version (2) port it to
>> 3.x yourself (3) use 2.6
>>   
> Actually John,
> My question was about the more general case --- how to help with 
> upgrading applications; but, I will try to address your email.
>> Otherwise: What does "will not install" mean? 
> This means that when the Windows installer is executed it informs you 
> that you do not have a match between the application and the Python that 
> it finds on your Windows PC. You can easily find this out for yourself 
> by trying to install PyODE on a Windows platform with a Python version 
> later than 2.5.x.
>> Are these pure Python
>> packages or do they include C extensions (binary (pyd) or source?)? 
> Obviously, this depends on the application. In the particular case that 
> I mentioned (PyODE) I believe that there is a mix of C binaries and 
> Python code.
>> At
>> what stage of the installation does the installation fail? 
> In the initial stages.
>> With what
>> error message(s)? 
> In one specific case, the message is (paraphrasing) "You do not have 
> Python 2.5 installed" --- the installation is then aborted.
>> With what versions of Python?
>>   
> I have only Python 2.6.2 on my home Windows Vista PC and PyODE does not 
> have a Windows Installer for Python 2.6.
>>
>>
>>   
>>> I do understand that there can be a time lag between the release of
>>> Python applications and the latest Python. I also appreciate the work of
>>> the people that are responsible for these applications.
>>>
>>> My question is --- Is there anything I, as a user of an application
>>> package that is out-of-date with respect to the latest Python, can do to
>>> help in this process of bringing an application  up-to-date?
>>>
>>> --V. Stokes
>>>     
>>
>>   
> Note, again John, my question was about how I might assist (help) with 
> the updating of applications;

Your answers have been very helpful in determining exactly what your 
problem is; thank you.

> but, thank you for your interest in this.
> Perhaps, only the owner/responsible programmer for the application can 
> create a Windows installer,

Given a source distribution, a suitable C++ compiler, and the suspension 
of Murphy's Law, anyone should be able to (a) install it on their own 
machine (b) make a Windows installer.


> or perhaps others could assist with this --- 

Perhaps indeed ...

> this is what my question was about. I would be glad to assist if 
> possible :-)

Suggestions:

(1) contact the pyODE maintainer and ask, or check out the project's 
forums on sourceforge

(2) if you have a C++ compiler on your Windows box: get the source 
distribution, unpack it, ensure that the ODE_BASE in the setup.py points 
to your (existing) ODE 0.7 installation, do
     \python26\python setup.py install
and stand well back.

I have just tried this and got a ton of warnings from the compile and 3 
errors from the link:

build\lib.win32-2.6\ode.pyd : fatal error LNK1120: 3 unresolved externals
error: command '"C:\Program Files\Microsoft Visual Studio 
9.0\VC\BIN\link.exe"' failed with exit status 1120

C++ is not my bag and it's way past bedtime here, so I'll just paste in 
  the link output in the hope that someone can spot the problem:

C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL 
/nologo /INCREMENTAL:NO /LIBPATH:C:\ode\ode-0.7\lib\releaselib 
/LIBPATH:C:\python26\libs /LIBPATH:C:\python26\PCbuild ode.lib 
user32.lib /EXPORT:initode build\temp.win32-2.6\Release\ode_trimesh.obj 
/OUT:build\lib.win32-2.6\ode.pyd 
/IMPLIB:build\temp.win32-2.6\Release\ode.lib 
/MANIFESTFILE:build\temp.win32-2.6\Release\ode.pyd.manifest 
/NODEFAULTLIB:LIBCMT

    Creating library build\temp.win32-2.6\Release\ode.lib and object 
build\temp.win32-2.6\Release\ode.exp

ode.lib(error.obj) : error LNK2019: unresolved external symbol __iob 
referenced in function "void __cdecl printMessage(int,char const *,char 
const *,char *)" (?printMessage@@YAXHPBD0PAD at Z)

ode.lib(convex.obj) : error LNK2001: unresolved external symbol __iob

ode.lib(convex.obj) : error LNK2019: unresolved external symbol "public: 
void __thiscall std::_String_base::_Xran(void)const " 
(?_Xran at _String_base@std@@QBEXXZ) referenced in function "public: class 
std::basic_string<char,struct std::char_traits<char>,class 
std::allocator<char> > & __thiscall std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> >::erase(unsigned 
int,unsigned int)" 
(?erase@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAEAAV12 at II@Z)

ode.lib(convex.obj) : error LNK2019: unresolved external symbol "public: 
void __thiscall std::_String_base::_Xlen(void)const " 
(?_Xlen at _String_base@std@@QBEXXZ) referenced in function "protected: 
bool __thiscall std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned 
int,bool)" 
(?_Grow@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IAE_NI_N at Z)

build\lib.win32-2.6\ode.pyd : fatal error LNK1120: 3 unresolved externals

Cheers, John



More information about the Python-list mailing list