Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #19868 > unrolled thread

PyCrypto builds neither with MSVC nor MinGW

Started byAlec Taylor <alec.taylor6@gmail.com>
First post2012-02-06 01:40 +1100
Last post2012-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.


Contents

  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

#19868 — PyCrypto builds neither with MSVC nor MinGW

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-02-06 01:40 +1100
SubjectPyCrypto 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]


#19944

Fromcasevh <casevh@gmail.com>
Date2012-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]


#20008

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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]


#20019

FromCase Van Horsen <casevh@gmail.com>
Date2012-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]


#20021

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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]


#20022

FromCase Van Horsen <casevh@gmail.com>
Date2012-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]


#21546

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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]


#21552

Fromcasevh@gmail.com
Date2012-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]


#21554

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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]


#21555

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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]


#21590

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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]


#27668

Frombikewave <pmfenton33@gmail.com>
Date2012-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]


#27670

FromDave Angel <d@davea.name>
Date2012-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]


#21553

Fromcasevh@gmail.com
Date2012-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]


#21548

FromAlec Taylor <alec.taylor6@gmail.com>
Date2012-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