471,310 Members | 1,570 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,310 software developers and data experts.

Problem with building extension in Python

Hi,

I have already install Microsoft visual studio .NET 2003 and MinGw,
when I try to build a extension:

python my_extension_setup.py build ( or install ) , I get an error:

LINK : fatal error LNK1141: failure during build of exports file
error: command '"C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link.exe"' failed with exit status 1141.What shoud I
do???

If you now anything useful,
please contact me!!


Thanks!!!!!!!!!!

Jul 5 '07 #1
4 2374
ve***********@v-programs.com wrote:
I have already install Microsoft visual studio .NET 2003 and MinGw,
when I try to build a extension:

python my_extension_setup.py build ( or install ) , I get an error:

LINK : fatal error LNK1141: failure during build of exports file
error: command '"C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link.exe"' failed with exit status 1141.

What shoud I do???
Tell us what the actual error message is? What you provide here is only the
last line, the real error is most likely before that. Please provide a bit
more of the output, anything that might be helpful to understand the problem.

Stefan
Jul 5 '07 #2
En Thu, 05 Jul 2007 05:08:58 -0300, <ve***********@v-programs.com>
escribió:
I have already install Microsoft visual studio .NET 2003 and MinGw,
when I try to build a extension:
Is this for Python 2.4? I think you can't compile Python 2.5 with VS2003.
python my_extension_setup.py build ( or install ) , I get an error:

LINK : fatal error LNK1141: failure during build of exports file
error: command '"C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link.exe"' failed with exit status 1141.What shoud I
do???
Almost surely you got a previous error, making link to fail. Try to
correct *that* error.

--
Gabriel Genellina

Jul 5 '07 #3
On Jul 5, 4:33 am, "Gabriel Genellina" <gagsl-...@yahoo.com.arwrote:
En Thu, 05 Jul 2007 05:08:58 -0300, <vedrandeko...@v-programs.com>
escribió:
I have already install Microsoft visual studio .NET 2003 and MinGw,
when I try to build a extension:

Is this for Python 2.4? I think you can't compile Python 2.5 with VS2003.
python my_extension_setup.py build ( or install ) , I get an error:
LINK : fatal error LNK1141: failure during build of exports file
error: command '"C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link.exe"' failed with exit status 1141.What shoud I
do???

Almost surely you got a previous error, making link to fail. Try to
correct *that* error.

--
Gabriel Genellina
Microsoft Visual Studio .NET 2003 Version 7.1 is the correct
version to build extensions for Python 2.5. There is also a Microsoft
Visual Studio .NET 2003 Version 7.0 as well, which is not acceptable
for building extensions. The first release (version 7.0) was purchased
by many, and is relatively easy to find. The following release
(version 7.1) was a minor revision and is very hard to find, but it is
what's necessary for building Python extensions. I hope future Python
releases are built using a more standard compiler.

I'm posting in this thread because I am running into the same
problem as the original poster, linker error 1141. Here's a summary of
what I've gotten to work properly so far:

Python 2.5, Pyrex, and Microsoft Visual Studio 2003 .NET (version 7.1)
are successfully installed
I have successfully built Pyrex extensions using Distutils
I have successfully imported and ran Pyrex extensions in my Python
code

The problems occur when I try to include C libraries in my Pyrex
code. Specifically, I need some trig functions found in C's math.h
header files. My .pyx file is as follows:

#
# Use C math functions
#

def cFunctionTester(float theta):

import sys

# Import the native C functions we need
cdef extern from "math.h":
double cos(double theta)
double sin(double theta)

result[0] = cos(theta)
result[1] = sin(theta)

return 5

I try to build the extension by running my setup.py file from the
command prompt. My setup.py file is presented below:

from distutils.core import setup
from distutils.extension import Extension
from Pyrex.Distutils import build_ext
setup(
name = "PyrexGuide",
ext_modules=[
Extension("cTest", ["cTest.pyx"], libraries = [])
],
cmdclass = {'build_ext': build_ext}
)

I run this code through the command prompt by entering "setup.py
install" The following error appears:

C:\Python25\Lib\site-packages\Pyrex\Distutils>setup.py install
running install
running build
running build_ext
building 'cTest' extension
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /
nologo /Ox
/MD /W3 /GX /DNDEBUG -IC:\Python25\include -IC:\Python25\PC /
TccTest.c /Fobuild
\temp.win32-2.5\Release\cTest.obj
cTest.c
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\link.exe /
DLL /nologo
/INCREMENTAL:NO /LIBPATH:C:\Python25\libs /LIBPATH:C:
\Python25\PCBuild /EXPORT:
initcTest build\temp.win32-2.5\Release\cTest.obj /OUT:build
\lib.win32-2.5\cTest.
pyd /IMPLIB:build\temp.win32-2.5\Release\cTest.lib
LINK : error LNK2001: unresolved external symbol initcTest
build\temp.win32-2.5\Release\cTest.lib : fatal error LNK1120: 1
unresolved exter
nals
LINK : fatal error LNK1141: failure during build of exports file
error: command '"c:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link
..exe"' failed with exit status 1141

C:\Python25\Lib\site-packages\Pyrex\Distutils>

I do not know what the problem is -- perhaps the linker cannot locate
math.h? I've tried copying the math.h file to a whole bunch of other
directories, but there's still no luck. Any help anyone can provide
would be greatly appreciated.

Joe Stoffa
Co********@gmail.com

Jul 12 '07 #4
I solved my problem.

I had the math.h import step in the wrong location. The import step
needed to be outside of the function -- I'm so embarrassed.

Code: [Download]

1.
2. #
3. # Use C math functions
4. #
5.
6. # Import the native C functions we need
7. cdef extern from "math.h":
8. double cos(double theta)
9. double sin(double theta)
10.
11.
12. def cTest(double theta):
13.
14. cdef double result[2]
15.
16. import sys
17.
18. result[0] = cos(theta)
19. result[1] = sin(theta)
20.
21. pyResult = (result[0], result[1])
22.
23. return pyResult
24.
25.

Now it works

If I type the following into the python shell

import cTest
cTest.cTest(.775)

The function returns

(0.71442103405593138, 0.69971607534660352)
Jul 18 '07 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Jose Vicente Nunez Z | last post: by
7 posts views Thread by Carl Waldbieser | last post: by
1 post views Thread by Jian Qiu | last post: by
6 posts views Thread by ajikoe | last post: by
reply views Thread by John Ling | last post: by
11 posts views Thread by ZMY | last post: by
reply views Thread by rosydwin | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.