Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #19868 > unrolled thread
| Started by | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| First post | 2012-02-06 01:40 +1100 |
| Last post | 2012-03-13 08:21 +1100 |
| Articles | 15 — 6 participants |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-02-06 01:40 +1100
Re: PyCrypto builds neither with MSVC nor MinGW casevh <casevh@gmail.com> - 2012-02-06 15:27 -0800
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-02-08 16:37 +1100
Re: PyCrypto builds neither with MSVC nor MinGW Case Van Horsen <casevh@gmail.com> - 2012-02-08 02:48 -0800
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-02-08 23:24 +1100
Re: PyCrypto builds neither with MSVC nor MinGW Case Van Horsen <casevh@gmail.com> - 2012-02-08 04:31 -0800
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-03-13 07:38 +1100
Re: PyCrypto builds neither with MSVC nor MinGW casevh@gmail.com - 2012-03-12 20:59 -0700
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-03-13 15:57 +1100
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-03-13 17:09 +1100
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-03-14 20:47 +1100
Re: PyCrypto builds neither with MSVC nor MinGW bikewave <pmfenton33@gmail.com> - 2012-08-22 11:21 -0700
Re: PyCrypto builds neither with MSVC nor MinGW Dave Angel <d@davea.name> - 2012-08-22 14:39 -0400
Re: PyCrypto builds neither with MSVC nor MinGW casevh@gmail.com - 2012-03-12 20:59 -0700
Re: PyCrypto builds neither with MSVC nor MinGW Alec Taylor <alec.taylor6@gmail.com> - 2012-03-13 08:21 +1100
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-02-06 01:40 +1100 |
| Subject | PyCrypto builds neither with MSVC nor MinGW |
| Message-ID | <mailman.5444.1328452841.27778.python-list@python.org> |
PIL, PyCrypto and many other modules require a C compiler and linker. Unfortunately neither install on my computer, with a PATH with the following: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC C:\libraries\MinGW\msys\1.0\bin C:\libraries\MinGW C:\Python27\Scripts Output from G:\pycrypto>vcvarsall.bat Setting environment for using Microsoft Visual Studio 2010 x86 tools. Error output from G:\pycrypto>python setup.py build --compiler msvc http://pastebin.com/nBsuXDGg Error output from G:\pycrypto>python setup.py build --compiler mingw32 1> log1 2> log2 Log1: http://pastebin.com/yG3cbdZv Log2: http://pastebin.com/qvnshPeh Will there ever be support for newer MSVC versions? - Also, why doesn't even MinGW install PyCrypto for me? Thanks for all suggestions, Alec Taylor
[toc] | [next] | [standalone]
| From | casevh <casevh@gmail.com> |
|---|---|
| Date | 2012-02-06 15:27 -0800 |
| Message-ID | <35da69c3-edcc-4466-8a0d-70237c88af3b@qv4g2000pbc.googlegroups.com> |
| In reply to | #19868 |
On Feb 5, 6:40 am, Alec Taylor <alec.tayl...@gmail.com> wrote: > PIL, PyCrypto and many other modules require a C compiler and linker. > > Unfortunately neither install on my computer, with a PATH with the following: > > C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC > C:\libraries\MinGW\msys\1.0\bin > C:\libraries\MinGW > C:\Python27\Scripts > > Output from G:\pycrypto>vcvarsall.bat > Setting environment for using Microsoft Visual Studio 2010 x86 tools. > > Error output from G:\pycrypto>python setup.py build --compiler msvc > http://pastebin.com/nBsuXDGg A couple of comments. You will need to complile either GMP or MPIR first. MPIR is a windows friendly fork of GMP and I use it create Windows binaries for gmpy. > > Error output from G:\pycrypto>python setup.py build --compiler mingw32 > 1> log1 2> log2 > Log1:http://pastebin.com/yG3cbdZv > Log2:http://pastebin.com/qvnshPeh > > Will there ever be support for newer MSVC versions? - Also, why Python 2.7 uses VS2008. I use the command line compiler included with in Microsoft's SDK 7.0 which is still available for download. I have step- by-step build instructions included in gmpy's source download. I would try to build MPIR and gmpy first and then adapt/modify the process for PyCrypto. MPIR home page: www.mpir.org gmpy source: gmpy.googlecode.com/files/gmpy-1.15.zip > doesn't even MinGW install PyCrypto for me? > > Thanks for all suggestions, > > Alec Taylor Hope these comments help... casevh
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-02-08 16:37 +1100 |
| Message-ID | <mailman.5534.1328679425.27778.python-list@python.org> |
| In reply to | #19944 |
Thanks all for your replies. I have now installed MSVC8 and YASM. I was able to successfully run configure.bat and make.bat (including make.bat check). However, I'm unsure what to do about install, since there is no install arg. Do I copy it across to my VC\bin folder, or does it need it's own place in PATH + system variables? I am asking because I don't know where it is looking for the MPIR library. Thanks for all suggestions, Alec Taylor
[toc] | [prev] | [next] | [standalone]
| From | Case Van Horsen <casevh@gmail.com> |
|---|---|
| Date | 2012-02-08 02:48 -0800 |
| Message-ID | <mailman.5541.1328698112.27778.python-list@python.org> |
| In reply to | #19944 |
On Tue, Feb 7, 2012 at 9:37 PM, Alec Taylor <alec.taylor6@gmail.com> wrote: > Thanks all for your replies. > > I have now installed MSVC8 and YASM. I assume you installed Visual Studio. I've omitted the commands to use the SDK compiler below. > > I was able to successfully run configure.bat and make.bat (including > make.bat check). > > However, I'm unsure what to do about install, since there is no > install arg. Do I copy it across to my VC\bin folder, or does it need > it's own place in PATH + system variables? The following is just a guess. I copy the files to a convenient location and then specify that location to setup.py. Below is an excerpt from my build process. mkdir c:\src\lib mkdir c:\src\include xcopy /Y mpir.h c:\src\include\*.* xcopy /Y win\mpir.lib c:\src\lib\*.* python setup.py build_ext -Ic:\src\include -Lc:\src\lib install > > I am asking because I don't know where it is looking for the MPIR library. > > Thanks for all suggestions, > > Alec Taylor
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-02-08 23:24 +1100 |
| Message-ID | <mailman.5542.1328703861.27778.python-list@python.org> |
| In reply to | #19944 |
Thanks, but to get it to work with pip, wouldn't I need to add it to PATH? - Or can I just add those library args to pip? On Wed, Feb 8, 2012 at 9:48 PM, Case Van Horsen <casevh@gmail.com> wrote: > On Tue, Feb 7, 2012 at 9:37 PM, Alec Taylor <alec.taylor6@gmail.com> wrote: >> Thanks all for your replies. >> >> I have now installed MSVC8 and YASM. > I assume you installed Visual Studio. I've omitted the commands to use > the SDK compiler below. >> >> I was able to successfully run configure.bat and make.bat (including >> make.bat check). >> >> However, I'm unsure what to do about install, since there is no >> install arg. Do I copy it across to my VC\bin folder, or does it need >> it's own place in PATH + system variables? > > The following is just a guess. > > I copy the files to a convenient location and then specify that > location to setup.py. Below is an excerpt from my build process. > > mkdir c:\src\lib > mkdir c:\src\include > xcopy /Y mpir.h c:\src\include\*.* > xcopy /Y win\mpir.lib c:\src\lib\*.* > > python setup.py build_ext -Ic:\src\include -Lc:\src\lib install > >> >> I am asking because I don't know where it is looking for the MPIR library. >> >> Thanks for all suggestions, >> >> Alec Taylor
[toc] | [prev] | [next] | [standalone]
| From | Case Van Horsen <casevh@gmail.com> |
|---|---|
| Date | 2012-02-08 04:31 -0800 |
| Message-ID | <mailman.5543.1328704297.27778.python-list@python.org> |
| In reply to | #19944 |
On Wed, Feb 8, 2012 at 4:24 AM, Alec Taylor <alec.taylor6@gmail.com> wrote: > Thanks, but to get it to work with pip, wouldn't I need to add it to > PATH? - Or can I just add those library args to pip? I don't think so. pyCrypto probably builds a single DLL so the MPIR library is statically linked into that DLL. Only the innvocation of setup.py should need to refer to the MPIR library locations. I don't use pip so I'm not sure how to get pip to install the resulting DLL, etc. > > On Wed, Feb 8, 2012 at 9:48 PM, Case Van Horsen <casevh@gmail.com> wrote: >> On Tue, Feb 7, 2012 at 9:37 PM, Alec Taylor <alec.taylor6@gmail.com> wrote: >>> Thanks all for your replies. >>> >>> I have now installed MSVC8 and YASM. >> I assume you installed Visual Studio. I've omitted the commands to use >> the SDK compiler below. >>> >>> I was able to successfully run configure.bat and make.bat (including >>> make.bat check). >>> >>> However, I'm unsure what to do about install, since there is no >>> install arg. Do I copy it across to my VC\bin folder, or does it need >>> it's own place in PATH + system variables? >> >> The following is just a guess. >> >> I copy the files to a convenient location and then specify that >> location to setup.py. Below is an excerpt from my build process. >> >> mkdir c:\src\lib >> mkdir c:\src\include >> xcopy /Y mpir.h c:\src\include\*.* >> xcopy /Y win\mpir.lib c:\src\lib\*.* >> >> python setup.py build_ext -Ic:\src\include -Lc:\src\lib install >> >>> >>> I am asking because I don't know where it is looking for the MPIR library. >>> >>> Thanks for all suggestions, >>> >>> Alec Taylor
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-03-13 07:38 +1100 |
| Message-ID | <mailman.595.1331584711.3037.python-list@python.org> |
| In reply to | #19944 |
On a brand new Windows install now, with a brand new VS8 installed
with new YASM and MPIR in c:\usr\src\include and c:\usr\src\lib.
But it still isn't working:
C:\workingdir\pycrypto>python setup.py build_ext -Ic:\usr\src\include
-Lc:\usr\src\lib install
running build_ext
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Random.OSRNG.winrandom' extension
Traceback (most recent call last):
File "setup.py", line 452, in <module>
core.setup(**kw)
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 249, in run
build_ext.run(self)
File "C:\Python27\lib\distutils\command\build_ext.py", line 339, in run
self.build_extensions()
File "setup.py", line 146, in build_extensions
build_ext.build_extensions(self)
File "C:\Python27\lib\distutils\command\build_ext.py", line 448, in
build_extensions
self.build_extension(ext)
File "C:\Python27\lib\distutils\command\build_ext.py", line 498, in
build_extension
depends=ext.depends)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 473, in compile
self.initialize()
File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in
query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [u'path']
On Wed, Feb 8, 2012 at 11:31 PM, Case Van Horsen <casevh@gmail.com> wrote:
> On Wed, Feb 8, 2012 at 4:24 AM, Alec Taylor <alec.taylor6@gmail.com> wrote:
>> Thanks, but to get it to work with pip, wouldn't I need to add it to
>> PATH? - Or can I just add those library args to pip?
> I don't think so. pyCrypto probably builds a single DLL so the MPIR library is
> statically linked into that DLL. Only the innvocation of setup.py should need
> to refer to the MPIR library locations. I don't use pip so I'm not sure how to
> get pip to install the resulting DLL, etc.
>>
>> On Wed, Feb 8, 2012 at 9:48 PM, Case Van Horsen <casevh@gmail.com> wrote:
>>> On Tue, Feb 7, 2012 at 9:37 PM, Alec Taylor <alec.taylor6@gmail.com> wrote:
>>>> Thanks all for your replies.
>>>>
>>>> I have now installed MSVC8 and YASM.
>>> I assume you installed Visual Studio. I've omitted the commands to use
>>> the SDK compiler below.
>>>>
>>>> I was able to successfully run configure.bat and make.bat (including
>>>> make.bat check).
>>>>
>>>> However, I'm unsure what to do about install, since there is no
>>>> install arg. Do I copy it across to my VC\bin folder, or does it need
>>>> it's own place in PATH + system variables?
>>>
>>> The following is just a guess.
>>>
>>> I copy the files to a convenient location and then specify that
>>> location to setup.py. Below is an excerpt from my build process.
>>>
>>> mkdir c:\src\lib
>>> mkdir c:\src\include
>>> xcopy /Y mpir.h c:\src\include\*.*
>>> xcopy /Y win\mpir.lib c:\src\lib\*.*
>>>
>>> python setup.py build_ext -Ic:\src\include -Lc:\src\lib install
>>>
>>>>
>>>> I am asking because I don't know where it is looking for the MPIR library.
>>>>
>>>> Thanks for all suggestions,
>>>>
>>>> Alec Taylor
[toc] | [prev] | [next] | [standalone]
| From | casevh@gmail.com |
|---|---|
| Date | 2012-03-12 20:59 -0700 |
| Message-ID | <13993807.3661.1331611178050.JavaMail.geo-discussion-forums@pbcgf10> |
| In reply to | #21546 |
On Monday, March 12, 2012 1:38:29 PM UTC-7, Alec Taylor wrote: > On a brand new Windows install now, with a brand new VS8 installed > with new YASM and MPIR in c:\usr\src\include and c:\usr\src\lib. > > But it still isn't working: > This was a little challenging. I looked through the setup.py to figure out what assumptions their build process made. First, the file pycrypto-2.5\src\inc-msvc\config.h must be modified. Below is the file I used: config.h =================================================================== /* Define to 1 if you have the declaration of `mpz_powm', and to 0 if you don't. */ #define HAVE_DECL_MPZ_POWM 1 /* Define to 1 if you have the declaration of `mpz_powm_sec', and to 0 if you don't. */ #define HAVE_DECL_MPZ_POWM_SEC 0 /* Define to 1 if you have the `gmp' library (-lgmp). */ #undef HAVE_LIBGMP /* Define to 1 if you have the `mpir' library (-lmpir). */ #define HAVE_LIBMPIR 1 /* Define to 1 if you have the <stdint.h> header file. */ #define HAVE_STDINT_H 1 =================================================================== Although I was able to specify an include directory for mpir.h with -Ic:\usr\include, I was not able specify a lib directory with -Lc:\usr\lib. It looks like setup.py does not honor the -L option. So I finally gave up and just copied the mpir.h file into my Python27\include directory and the mpir.lib file into my Python27\libs directory. After copying the files "python setup.py install" was successful. I created a binary installer with "python setup.py bdist-wininst". There may be a cleaner way to build PyCrypto, but these steps worked for me. casevh
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-03-13 15:57 +1100 |
| Message-ID | <mailman.603.1331614675.3037.python-list@python.org> |
| In reply to | #21552 |
Hmm, I just tried that method, but the output I got was still:
C:\workingdir\pycrypto>python setup.py install
running install
running build
running build_py
running build_ext
building 'Crypto.Random.OSRNG.winrandom' extension
Traceback (most recent call last):
File "setup.py", line 452, in <module>
core.setup(**kw)
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\install.py", line 563, in run
self.run_command('build')
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name)
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 249, in run
build_ext.run(self)
File "C:\Python27\lib\distutils\command\build_ext.py", line 339, in run
self.build_extensions()
File "setup.py", line 146, in build_extensions
build_ext.build_extensions(self)
File "C:\Python27\lib\distutils\command\build_ext.py", line 448, in
build_extensions
self.build_extension(ext)
File "C:\Python27\lib\distutils\command\build_ext.py", line 498, in
build_extension
depends=ext.depends)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 473, in compile
self.initialize()
File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in
query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [u'path']
--------------
and when I manually run vcvarsall (which is in PATH), I get the
aforementioned linker errors:
--------------
C:\workingdir\pycrypto>python setup.py install
running install
running build
running build_py
running build_ext
building 'Crypto.Random.OSRNG.winrandom' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c
/nologo /Ox /MD /W3 /GS- /DNDEBUG -Isrc/ -Isrc/inc-msvc/
-IC:\Python27\include -IC:\Python27 \PC /Tcsrc/winrand.c
/Fobuild\temp.win-amd64-2.7\Release\src/winrand.obj winrand.c
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe
/DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python27\libs
/LIBPATH:C:\Python27\PCbuild\amd64 ws2 _32.lib advapi32.lib
/EXPORT:initwinrandom build\temp.win-amd64-2.7\Release\src/
winrand.obj /OUT:build\lib.win-amd64-2.7\Crypto\Random\OSRNG\winrandom.pyd /IMPL
IB:build\temp.win-amd64-2.7\Release\src\winrandom.lib
/MANIFESTFILE:build\temp.win-amd64-2.7\Release\src\winrandom.pyd.manifest
Creating library build\temp.win-amd64-2.7\Release\src\winrandom.lib
and object build\temp.win-amd64-2.7\Release\src\winrandom.exp
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyObject_Free referenced in function _WRdealloc
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyExc_SystemError referenced in function _WRdealloc
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyErr_Format referenced in function _WRdealloc
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyExc_TypeError referenced in function _WRdealloc
winrand.obj : error LNK2019: unresolved external symbol
__imp___PyObject_New referenced in function _winrandom_new
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyArg_ParseTupleAndKeywords referenced in function
_winrandom_new
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyString_FromStringAndSize referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyMem_Free referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyErr_NoMemory referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyMem_Malloc referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyErr_SetString referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyExc_ValueError referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyArg_ParseTuple referenced in function _WR_get_bytes
winrand.obj : error LNK2019: unresolved external symbol
__imp__Py_FindMethod referenced in function _WRgetattr
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyInt_FromLong referenced in function _WRgetattr
winrand.obj : error LNK2019: unresolved external symbol
__imp__Py_FatalError referenced in function _initwinrandom
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyErr_Occurred referenced in function _initwinrandom
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyModule_AddStringConstant referenced in function
_initwinrandom
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyModule_AddIntConstant referenced in function _initwinrandom
winrand.obj : error LNK2019: unresolved external symbol
__imp__Py_InitModule4 referenced in function _initwinrandom
winrand.obj : error LNK2019: unresolved external symbol
__imp__PyType_Type referenced in function _initwinrandom
build\lib.win-amd64-2.7\Crypto\Random\OSRNG\winrandom.pyd : fatal error LNK1120:
21 unresolved externals
error: command '"C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\BIN\link.exe"' failed with exit status 1120
On Tue, Mar 13, 2012 at 2:59 PM, <casevh@gmail.com> wrote:
> On Monday, March 12, 2012 1:38:29 PM UTC-7, Alec Taylor wrote:
>> On a brand new Windows install now, with a brand new VS8 installed
>> with new YASM and MPIR in c:\usr\src\include and c:\usr\src\lib.
>>
>> But it still isn't working:
>>
> This was a little challenging. I looked through the setup.py to figure out what assumptions their build process made. First, the file pycrypto-2.5\src\inc-msvc\config.h must be modified. Below is the file I used:
>
> config.h
> ===================================================================
> /* Define to 1 if you have the declaration of `mpz_powm', and to 0 if you
> don't. */
> #define HAVE_DECL_MPZ_POWM 1
>
> /* Define to 1 if you have the declaration of `mpz_powm_sec', and to 0 if you
> don't. */
> #define HAVE_DECL_MPZ_POWM_SEC 0
>
> /* Define to 1 if you have the `gmp' library (-lgmp). */
> #undef HAVE_LIBGMP
>
> /* Define to 1 if you have the `mpir' library (-lmpir). */
> #define HAVE_LIBMPIR 1
>
> /* Define to 1 if you have the <stdint.h> header file. */
> #define HAVE_STDINT_H 1
> ===================================================================
>
> Although I was able to specify an include directory for mpir.h with -Ic:\usr\include, I was not able specify a lib directory with -Lc:\usr\lib. It looks like setup.py does not honor the -L option. So I finally gave up and just copied the mpir.h file into my Python27\include directory and the mpir.lib file into my Python27\libs directory.
>
> After copying the files "python setup.py install" was successful. I created a binary installer with "python setup.py bdist-wininst".
>
> There may be a cleaner way to build PyCrypto, but these steps worked for me.
>
> casevh
> --
> http://mail.python.org/mailman/listinfo/python-list
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-03-13 17:09 +1100 |
| Message-ID | <mailman.604.1331618982.3037.python-list@python.org> |
| In reply to | #21552 |
Nope, I have C:\Python27 (and C:\Python27\Scripts) in my PATH.
C:\workingdir\pycrypto>where python
C:\Python27\python.exe
On Tue, Mar 13, 2012 at 4:44 PM, Case Van Horsen <casevh@gmail.com> wrote:
> On Mon, Mar 12, 2012 at 9:57 PM, Alec Taylor <alec.taylor6@gmail.com> wrote:
>> Hmm, I just tried that method, but the output I got was still:
>>
>> C:\workingdir\pycrypto>python setup.py install
>> running install
>> running build
>> running build_py
>> running build_ext
>> building 'Crypto.Random.OSRNG.winrandom' extension
>> Traceback (most recent call last):
>> File "setup.py", line 452, in <module>
>> core.setup(**kw)
>> File "C:\Python27\lib\distutils\core.py", line 152, in setup
>> dist.run_commands()
>> File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
>> self.run_command(cmd)
>> File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
>> cmd_obj.run()
>> File "C:\Python27\lib\distutils\command\install.py", line 563, in run
>> self.run_command('build')
>> File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
>> self.distribution.run_command(command)
>> File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
>> cmd_obj.run()
>> File "C:\Python27\lib\distutils\command\build.py", line 127, in run
>> self.run_command(cmd_name)
>> File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
>> self.distribution.run_command(command)
>> File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
>> cmd_obj.run()
>> File "setup.py", line 249, in run
>> build_ext.run(self)
>> File "C:\Python27\lib\distutils\command\build_ext.py", line 339, in run
>> self.build_extensions()
>> File "setup.py", line 146, in build_extensions
>> build_ext.build_extensions(self)
>> File "C:\Python27\lib\distutils\command\build_ext.py", line 448, in
>> build_extensions
>> self.build_extension(ext)
>> File "C:\Python27\lib\distutils\command\build_ext.py", line 498, in
>> build_extension
>> depends=ext.depends)
>> File "C:\Python27\lib\distutils\msvc9compiler.py", line 473, in compile
>> self.initialize()
>> File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
>> vc_env = query_vcvarsall(VERSION, plat_spec)
>> File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in
>> query_vcvarsall
>> raise ValueError(str(list(result.keys())))
>> ValueError: [u'path']
>>
>> --------------
>> and when I manually run vcvarsall (which is in PATH), I get the
>> aforementioned linker errors:
>> --------------
>>
>> C:\workingdir\pycrypto>python setup.py install
>> running install
>> running build
>> running build_py
>> running build_ext
>> building 'Crypto.Random.OSRNG.winrandom' extension
>> C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c
>> /nologo /Ox /MD /W3 /GS- /DNDEBUG -Isrc/ -Isrc/inc-msvc/
>> -IC:\Python27\include -IC:\Python27 \PC /Tcsrc/winrand.c
>> /Fobuild\temp.win-amd64-2.7\Release\src/winrand.obj winrand.c
>> C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe
>> /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python27\libs
>> /LIBPATH:C:\Python27\PCbuild\amd64 ws2 _32.lib advapi32.lib
>> /EXPORT:initwinrandom build\temp.win-amd64-2.7\Release\src/
>> winrand.obj /OUT:build\lib.win-amd64-2.7\Crypto\Random\OSRNG\winrandom.pyd /IMPL
>> IB:build\temp.win-amd64-2.7\Release\src\winrandom.lib
>> /MANIFESTFILE:build\temp.win-amd64-2.7\Release\src\winrandom.pyd.manifest
>> Creating library build\temp.win-amd64-2.7\Release\src\winrandom.lib
>> and object build\temp.win-amd64-2.7\Release\src\winrandom.exp
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyObject_Free referenced in function _WRdealloc
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyExc_SystemError referenced in function _WRdealloc
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyErr_Format referenced in function _WRdealloc
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyExc_TypeError referenced in function _WRdealloc
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp___PyObject_New referenced in function _winrandom_new
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyArg_ParseTupleAndKeywords referenced in function
>> _winrandom_new
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyString_FromStringAndSize referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyMem_Free referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyErr_NoMemory referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyMem_Malloc referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyErr_SetString referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyExc_ValueError referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyArg_ParseTuple referenced in function _WR_get_bytes
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__Py_FindMethod referenced in function _WRgetattr
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyInt_FromLong referenced in function _WRgetattr
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__Py_FatalError referenced in function _initwinrandom
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyErr_Occurred referenced in function _initwinrandom
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyModule_AddStringConstant referenced in function
>> _initwinrandom
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyModule_AddIntConstant referenced in function _initwinrandom
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__Py_InitModule4 referenced in function _initwinrandom
>> winrand.obj : error LNK2019: unresolved external symbol
>> __imp__PyType_Type referenced in function _initwinrandom
>> build\lib.win-amd64-2.7\Crypto\Random\OSRNG\winrandom.pyd : fatal error LNK1120:
>> 21 unresolved externals
>> error: command '"C:\Program Files (x86)\Microsoft Visual Studio
>> 9.0\VC\BIN\link.exe"' failed with exit status 1120
>>
>
> It almost seems that python can't find all its files. Are you using a
> macro or batch file to invoke python. I actually used
>
> "c:\x64\Python27\python.exe setup.py install"
>
> IIRC, I've had issues with a DOSKEY macro before so now I explicitly
> use the full path to python.exe.
>
> Otherwise I'm stumped.
>> On Tue, Mar 13, 2012 at 2:59 PM, <casevh@gmail.com> wrote:
>>> On Monday, March 12, 2012 1:38:29 PM UTC-7, Alec Taylor wrote:
>>>> On a brand new Windows install now, with a brand new VS8 installed
>>>> with new YASM and MPIR in c:\usr\src\include and c:\usr\src\lib.
>>>>
>>>> But it still isn't working:
>>>>
>>> This was a little challenging. I looked through the setup.py to figure out what assumptions their build process made. First, the file pycrypto-2.5\src\inc-msvc\config.h must be modified. Below is the file I used:
>>>
>>> config.h
>>> ===================================================================
>>> /* Define to 1 if you have the declaration of `mpz_powm', and to 0 if you
>>> don't. */
>>> #define HAVE_DECL_MPZ_POWM 1
>>>
>>> /* Define to 1 if you have the declaration of `mpz_powm_sec', and to 0 if you
>>> don't. */
>>> #define HAVE_DECL_MPZ_POWM_SEC 0
>>>
>>> /* Define to 1 if you have the `gmp' library (-lgmp). */
>>> #undef HAVE_LIBGMP
>>>
>>> /* Define to 1 if you have the `mpir' library (-lmpir). */
>>> #define HAVE_LIBMPIR 1
>>>
>>> /* Define to 1 if you have the <stdint.h> header file. */
>>> #define HAVE_STDINT_H 1
>>> ===================================================================
>>>
>>> Although I was able to specify an include directory for mpir.h with -Ic:\usr\include, I was not able specify a lib directory with -Lc:\usr\lib. It looks like setup.py does not honor the -L option. So I finally gave up and just copied the mpir.h file into my Python27\include directory and the mpir.lib file into my Python27\libs directory.
>>>
>>> After copying the files "python setup.py install" was successful. I created a binary installer with "python setup.py bdist-wininst".
>>>
>>> There may be a cleaner way to build PyCrypto, but these steps worked for me.
>>>
>>> casevh
>>> --
>>> http://mail.python.org/mailman/listinfo/python-list
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-03-14 20:47 +1100 |
| Message-ID | <mailman.631.1331718474.3037.python-list@python.org> |
| In reply to | #21552 |
Oh wait, just realised it was loading the (x86) tools. Doing a quick search I noticed that I didn't have the x64 components installed, so loading up the MSVC08 setup again and installing it, then: copying vcvarsamd64.bat to vcvarsall.bat and adding its directory (C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\) to PATH.... AND IT WORKS! =D
[toc] | [prev] | [next] | [standalone]
| From | bikewave <pmfenton33@gmail.com> |
|---|---|
| Date | 2012-08-22 11:21 -0700 |
| Message-ID | <mailman.3676.1345659717.4697.python-list@python.org> |
| In reply to | #21552 |
I also had the unresolved externals problem (not the mdir.h problem, though) and my solution was different. a) reinstall correct python2.6.4, using an Intel-flavor msi vice AMD64-flavor b) source the c:\program files(x86\microsoft visual studio 9.0\vc\bin\vcvars32.bat and shazzaaaam the pycrypto build + install worked fine. My CPU is Intel not AMD so I apparently had a bogus python install. -- View this message in context: http://python.6.n6.nabble.com/PyCrypto-builds-neither-with-MSVC-nor-MinGW-tp4366880p4986058.html Sent from the Python - python-list mailing list archive at Nabble.com.
[toc] | [prev] | [next] | [standalone]
| From | Dave Angel <d@davea.name> |
|---|---|
| Date | 2012-08-22 14:39 -0400 |
| Message-ID | <mailman.3678.1345660825.4697.python-list@python.org> |
| In reply to | #21552 |
On 08/22/2012 02:21 PM, bikewave wrote: > I also had the unresolved externals problem (not the mdir.h problem, though) > and my solution was different. > a) reinstall correct python2.6.4, using an Intel-flavor msi vice > AMD64-flavor > b) source the c:\program files(x86\microsoft visual studio > 9.0\vc\bin\vcvars32.bat > and shazzaaaam the pycrypto build + install worked fine. > My CPU is Intel not AMD so I apparently had a bogus python install. > For most open-software distributions: AMD64 is the 64 bit build for both AMD and Intel. Probably referred to as AMD64 because AMD had a compatible 64 bit processor while Intel was still fooling around with Merced for its 64 bit stuff. X86 is the 32 bit build for both AMD and Intel. -- DaveA
[toc] | [prev] | [next] | [standalone]
| From | casevh@gmail.com |
|---|---|
| Date | 2012-03-12 20:59 -0700 |
| Message-ID | <mailman.600.1331611187.3037.python-list@python.org> |
| In reply to | #21546 |
On Monday, March 12, 2012 1:38:29 PM UTC-7, Alec Taylor wrote: > On a brand new Windows install now, with a brand new VS8 installed > with new YASM and MPIR in c:\usr\src\include and c:\usr\src\lib. > > But it still isn't working: > This was a little challenging. I looked through the setup.py to figure out what assumptions their build process made. First, the file pycrypto-2.5\src\inc-msvc\config.h must be modified. Below is the file I used: config.h =================================================================== /* Define to 1 if you have the declaration of `mpz_powm', and to 0 if you don't. */ #define HAVE_DECL_MPZ_POWM 1 /* Define to 1 if you have the declaration of `mpz_powm_sec', and to 0 if you don't. */ #define HAVE_DECL_MPZ_POWM_SEC 0 /* Define to 1 if you have the `gmp' library (-lgmp). */ #undef HAVE_LIBGMP /* Define to 1 if you have the `mpir' library (-lmpir). */ #define HAVE_LIBMPIR 1 /* Define to 1 if you have the <stdint.h> header file. */ #define HAVE_STDINT_H 1 =================================================================== Although I was able to specify an include directory for mpir.h with -Ic:\usr\include, I was not able specify a lib directory with -Lc:\usr\lib. It looks like setup.py does not honor the -L option. So I finally gave up and just copied the mpir.h file into my Python27\include directory and the mpir.lib file into my Python27\libs directory. After copying the files "python setup.py install" was successful. I created a binary installer with "python setup.py bdist-wininst". There may be a cleaner way to build PyCrypto, but these steps worked for me. casevh
[toc] | [prev] | [next] | [standalone]
| From | Alec Taylor <alec.taylor6@gmail.com> |
|---|---|
| Date | 2012-03-13 08:21 +1100 |
| Message-ID | <mailman.597.1331587314.3037.python-list@python.org> |
| In reply to | #19944 |
FYI: When running "vcvarsall" manually, I get a variety of linker errors, even though I have the SDK and everything else installed: running build_ext building 'Crypto.Random.OSRNG.winrandom' extension C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Isrc/ -Isrc/inc-msvc/ -Ic:\usr\src\include -IC:\Python27\include -IC:\Python27\PC /Tcsrc/winrand.c /Fobuild\temp.win-amd64-2.7\Release\src/winrand.obj winrand.c C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\usr\src\lib /LIBPATH:C:\Python27\libs /LIBPATH:C:\Python27\PCbuild\amd64 ws2_32.lib advapi32.lib /EXPORT:initwinrandom build\temp.win-amd64-2.7\Release\src/winrand.obj /OUT:build\lib.win-amd64-2.7\Crypto\Random\OSRNG\winrandom.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\src\winrandom.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\src\winrandom.pyd.manifest Creating library build\temp.win-amd64-2.7\Release\src\winrandom.lib and object build\temp.win-amd64-2.7\Release\src\winrandom.exp winrand.obj : error LNK2019: unresolved external symbol __imp__PyObject_Free referenced in function _WRdealloc winrand.obj : error LNK2019: unresolved external symbol __imp__PyExc_SystemError referenced in function _WRdealloc winrand.obj : error LNK2019: unresolved external symbol __imp__PyErr_Format referenced in function _WRdealloc winrand.obj : error LNK2019: unresolved external symbol __imp__PyExc_TypeError referenced in function _WRdealloc winrand.obj : error LNK2019: unresolved external symbol __imp___PyObject_New referenced in function _winrandom_new winrand.obj : error LNK2019: unresolved external symbol __imp__PyArg_ParseTupleAndKeywords referenced in function _winrandom_new winrand.obj : error LNK2019: unresolved external symbol __imp__PyString_FromStringAndSize referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__PyMem_Free referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__PyErr_NoMemory referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__PyMem_Malloc referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__PyErr_SetString referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__PyExc_ValueError referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__PyArg_ParseTuple referenced in function _WR_get_bytes winrand.obj : error LNK2019: unresolved external symbol __imp__Py_FindMethod referenced in function _WRgetattr winrand.obj : error LNK2019: unresolved external symbol __imp__PyInt_FromLong referenced in function _WRgetattr winrand.obj : error LNK2019: unresolved external symbol __imp__Py_FatalError referenced in function _initwinrandom winrand.obj : error LNK2019: unresolved external symbol __imp__PyErr_Occurred referenced in function _initwinrandom winrand.obj : error LNK2019: unresolved external symbol __imp__PyModule_AddStringConstant referenced in function _initwinrandom winrand.obj : error LNK2019: unresolved external symbol __imp__PyModule_AddIntConstant referenced in function _initwinrandom winrand.obj : error LNK2019: unresolved external symbol __imp__Py_InitModule4 referenced in function _initwinrandom winrand.obj : error LNK2019: unresolved external symbol __imp__PyType_Type referenced in function _initwinrandom build\lib.win-amd64-2.7\Crypto\Random\OSRNG\winrandom.pyd : fatal error LNK1120: 21 unresolved externals
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web