PyCrypto'yu Windows'a nasıl kurarım?


140

Hiçbir şey çalışma, diğer google kaynak ve SO iplik okudum.

Python 2.7.3 32bityüklendi Windows 7 64bit. PyCrypto sonuçlarını indirin, ayıklayın ve yüklemeye çalışın"Unable to find vcvarsall.bat".

Bu yüzden MinGW'yi yüklüyorum ve bunu kurulum satırında seçtiğiniz derleyici olarak yapıştırıyorum. Ama sonra hatayı alıyorum"RuntimeError: chmod error".

Dünyada bunun üstesinden nasıl gelebilirim? Aynı sonucu veren pip kullanmayı denedim. Önceden oluşturulmuş bir PyCrypto 2.3 ikili dosyası buldum ve yükledim, ancak sistemde bulunacak hiçbir yer yok (çalışmıyor).

Herhangi bir fikir?


olası hata

16
Sadece yüklemek istiyorsanız , ikili PyCrypto yükleyicisini indirin
bobobobo

12
Bu çok cesur bir tavsiye, yurtdışından bilinmeyen bir sunucudan ikili bir şifreleme paketi kurmak ...
Darren Ringer

Seçilen cevapla devam etsem de, sonunda paketi kendim oluşturdum ve yapmayı başardım (her ne kadar herhangi bir imzaları doğrulamak için yeterince uğraşmadım, çünkü gerçekten, gerçekten gerçekten güvende miyiz?) Paranoya ve ilgisizlik Bununla birlikte, aşağıdaki bağlantı tüm en zor sorunlarımı çözdü ve süreci bir çırpıda yaptı: blog.victorjabur.com/2011/06/05/…
Darren Ringer

4
PyCrypto öldü. Yazar bir süreliğine bıraktı. github.com/dlitz/pycrypto/issues/173
Smit Johnth

Yanıtlar:


184

Python.org tarafından dağıtılan Visual Studio ikili dosyaları ile uyumlu bir C / C ++ geliştirme ortamınız yoksa, yalnızca saf Python paketlerini veya Windows ikili dosyası bulunan paketleri yüklemeye devam etmelisiniz.

Neyse ki, Windows için PyCrypto ikili dosyaları var: http://www.voidspace.org.uk/python/modules.shtml#pycrypto

GÜNCELLEME:
@Udi'nin aşağıdaki yorumda belirttiği gibi, aşağıdaki komut da kurulur pycryptove kullanılabilir virtualenv:

easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

Bu listeden kurulumunuz için ilgili bağlantıyı seçtiğinize dikkat edin

Python 3.5 için yapı arıyorsanız , python 3.5'te PyCrypto'ya bakın.


28
ikili dosyaları url'den yüklemek için easy_install komutunu kullanabilirsiniz:easy_install http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe
Udi

Voidspace.org.uk/python/modules.shtml#pycrypto adresindeki yükleyici benim için çalıştı. Bir ipucu: Yanlışlıkla 64 bit yükleyiciyi çalıştırırsanız ancak Python 2.7'nin 32 bit sürümüne sahipseniz, yükleyici "Kayıt defterinde bulunmayan Python sürüm 2.7 gerekli" uyarısıyla başarısız olur.
Steve Saporta

1
gui yükleyici benim için başarısız oldu. easy_install başarılı
pscheit

@Udi neden bir exe için easy_install'a ihtiyacınız var?
Smit Johnth

@SmitJohnth easy_installpaketi bir virtualenv'e (varsa) kuracak ve tüm grafik etkileşimlerini engelleyecek (otomatikleştirmek veya sadece zaman kazanmak için).
Udi

32

Microsoft son zamanlarda Python 2.7 için bağımsız, özel bir Microsoft Visual C ++ Derleyicisi yayımladı . Python 2.7 kullanıyorsanız, bu derleyiciyi ve Setuptools 6.0 veya üstünü kurmanız yeterlidir; C uzantılarına sahip çoğu paket artık kolayca derlenecektir.


Vay, ne kadar ilginç. Ama yine de 84 Mb. Ve biraz fazla geç, tekerlek hakkındaki cevabımı gör.
Smit Johnth

1
Tekerlekle bile, bu, kaynağından bir şey inşa etmek veya tekerleği olmayan bir modül kullanmak istediğiniz zamanlar için başınızı VS 2008 ve vcvarsall.bat'a karşı vurmaktan çok daha iyi bir seçenektir. Python için MSVC "uzun vadede" olmayabilir, ancak şu anda son derece yararlıdır.
GrandOpener

1
Hala bulduğum en kolay çözüm; Her zaman rastgele (bana) web sitelerinden önceden oluşturulmuş ikili dosyalara güvenmekten nefret ettim.
Myk Willis

28

Yıllar ve yıllar sonra , python sonunda wheelbasit bir derleyici olmadan Windows'a ikili uzantıları bile yüklemeye izin veren bir ikili dağıtım için anlaştı pip install packagename. Durumlarıyla popüler paketlerin bir listesi var . Pycrypto henüz orada değil, örneğin lxml, PySide ve Scrapy.

Kasım 2015'te düzenlendi : pip uninstall pycrypto& pip install pycryptodome. pycryptoYeni özelliklere sahip bir çatal ve tekerleği destekliyor. Yerini alır pycrypto, bu nedenle mevcut kod çalışmaya devam eder (bkz. Https://pycryptodome.readthedocs.org/en/latest/src/examples.html )


20

VS2010 için:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

VS2012 için:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

sonra ara:

pip install pyCrypto 

1
VS2013 için: VS90COMNTOOLS'u ayarlayın =% VS120COMNTOOLS%
Jake1164

2
Bu bazı durumlarda işe yarayabilir olsa da, bu bir çözüm DEĞİLDİR. Herhangi bir bağımlılığın Python ile derlendiği aynı derleyici ile derlendiğinden emin olmalısınız!
Daniel van Flymen

1
VS2017 nasıl? Ne ayarlamalıyım ?!
mahshid.r

1
@ mahshid.r VSxxxCOMNTOOLS ortam değişkenlerini kontrol edebilir ve değişken adını alabilir, ardından VS90COMNTOOLS değişkenini VSxxxCOMNTOOLS değerine ayarlayabilirsiniz. CMD'de: 1. "SET VS90COMNTOOLS =% VS140COMNTOOLS%" 2. pip install pyCrypto
Oriel Cochavi

18

Genel olarak

vcvarsall.batVisual C ++ derleyicisinin bir parçasıdır, yüklemeye çalıştığınız şeyi yüklemeniz gerekir. Python'unuz Visual Studio araç zinciri ile derlenmişse ve bunun tersi ise MingGW ile uğraşmaya bile çalışmayın. Microsoft araç zincirinin sürümü bile önemlidir. VS 2008 ile derlenen Python, VS 2010 ile derlenen uzantılarla çalışmaz!

PyCrypto'yu Python sürümünün derlendiği aynı derleyiciyle derlemelisiniz. Google, "vcvarsall.bat bulunamadı" için sorununuzun kökü olduğu için , Windows'ta Python uzantılarını derlemede çok yaygın bir sorundur.

Bu bağlantı ile hangi sistemde olursanız olun, doğru bilgi almak için çok fazla bilgi ve okunacak çok şey var.

Visual Studio 2010 veya Visual Studio 2008 kullanmamaya dikkat edin

Bildiğim kadarıyla aşağıdakiler hala doğru. Bu, Haziran 2010'da, python.org'da bulunan Python yükleyicilerine karşı VS 2010 Express ile uzantılar oluşturmaya çalışırken atıfta bulunulan bağlantıda yayınlandı.

Bunu yaparsanız dikkatli olun. Python.org sitesindeki Python 2.6 ve 2.7, Visual Studio 2008 derleyicileri ile oluşturulmuştur. Python ile aynı CRT (msvcr90.dll) ile bağlantı kurmanız gerekecektir.

Visual Studio 2010 Express, yanlış CRT sürümüyle bağlantı veriyor: msvcr100.dll.

Bunu yaparsanız, Python'u Visual Studio 2010 Express ile de yeniden oluşturmanız gerekir. Windows için standart Python ikili yükleyicisini kullanamazsınız. Visual Studio 2010'dan (Express) farklı bir derleyici ile oluşturulan C / C ++ uzantılarını da kullanamazsınız.

Görüş: Bu, OSX için tüm ciddi geliştirme çalışmaları için Windows'u terk etmemin bir nedeni!


2
İçgörü için teşekkürler. Ama iyi gökler, gerçekten bu sıkıcı olmak zorunda mı (hayal kırıklığı kendiniz değil, python tanrılarına yönelik)? Her ikisi de hatalarla çıkıp, hem setup.py hem de pip yoluyla başka bir paket (mcrypt) yüklemeye çalıştım. Windows kullanıcıları dünyada paketleri nasıl kurar? Hepsi VS 2008 Express'i indirmek zorunda mı? (VS 2010 var, sanırım bu işi yapmaz).
Coldblackice

1
hayır değil; OSX veya Linux'ta böyle değil. Windows sen yapabilirsiniz varsayılan Python dağılımlar için derlenmiş ikillerin kurulumunu onları bulabilirseniz , şifreleme şeyler yüzünden aptal genellikle mevcut değildir ihracat kısıtlamaları ABD'de. Ama gerçekten kaynağından derlemediğiniz şifreleme kütüphanelerini kendiniz mi yüklemek istiyorsunuz ???? Bu ne kadar güvenli, yani gerçekten bir şekilde tehlikeye atılmadıklarını nereden biliyorsunuz?

Samanyoluhaber.com "Görüş: Bu, OSX için tüm ciddi geliştirme çalışmaları için Windows'u terk etmemin bir nedeni!" Evet ... cihazımda herhangi bir C derleyicisi olmadan önce python indirdim ... Sonra daha sonra visual basic ile biraz yapmak için visual studio 2013 aldım ... Sonra bundan sonra kullanabilmek için MinGW aldım GCC pencerelerde C derlenecek. Kısacası, bunların bazıları benim hatam olsa da, python'un hangi geliştirme ortamı kullanmaya çalışacağı hakkında hiçbir fikrim yok. Neyse ki, pycrypto dahil olmak üzere çevrimiçi ikili dosyalarda bir sürü python paketi mevcuttur.
trevorKirkby

15

PyCryptodome , pypi'de bulunan Windows tekerlekli neredeyse uyumlu bir PyCrypto çataldır .

Basit bir şekilde kurabilirsiniz:

pip install pycryptodome

Web sitesi, Microsoft derleyicileriyle de kaynaklardan derleme talimatları içermektedir.


6

Elde başarmış pycryptokullanarak derlemek MinGW32ve MSYS. Bu, yüklü pipveya easy_installyüklü olduğunu varsayar .

İşte böyle yaptım:

1) MinGW32'yi kurun . Bu açıklama uğruna, bunun yüklü olduğunu varsayalım C:\MinGW. Tavsiye ettiğim yükleyiciyi kullanırken . MSYS'nin kurması gereken C ++ derleyicisini seçinMinGW

2) ekleyin c:\mingw\bin,c:\mingw\mingw32\bin,C:\MinGW\msys\1.0, c:\mingw\msys\1.0\bin and c:\mingw\msys\1.0\sbinadresinden Müşteri %PATH%. Eğer aşina değilseniz, bu makale çok yardımcı olur.

3) Arama çubuğundan çalıştırın msysve MSYS terminali açılır. Bildiklerine Cygwinbenzer şekilde çalışır.

4) MSYS terminali içinden pip install pycryptobundan sonra hatasız çalışmalıdır.


Çözümünüzün bazı adımlardan yoksun olduğu anlaşılıyor. bu çözümü biraz daha ayrıntılandırmak isteyebilirsiniz.
Rusty Weber

5

Windows 7 için:

Pycrypto'yu Windows'a yüklemek için,

Bunu Komut İstemi'nde deneyin,

Yol ayarla = C: \ Python27 \ Scripts (örneğin, easy_install öğesinin bulunduğu yol)

Ardından aşağıdakileri yürütün,

easy_install pycrypto

Ubuntu için:

Bunu dene,

Pycrypto'yu " https://pypi.python.org/pypi/pycrypto " adresinden indirin.

Ardından, terminalinizi kullanarak geçerli yolunuzu indirilen yola değiştirin ve kullanıcı kök olmalıdır:

Örnek: root @ xyz-virtual-machine: ~ / pycrypto-2.6.1 #

Ardından terminali kullanarak aşağıdakileri yürütün:

python setup.py kurulum

Benim için çalıştı. Umut herkes için çalışır ..


Ben Windows 7 ve ben bir hata var ilk kez bu koştum: "hata: hata ile sonlandı Kurulum komut:. Microsoft Visual C ++ 9.0 gereklidir (vcvarsall.bat bulunamıyor) adresinden edinin aka.ms/vcpython27 ". Bunu yükledi, komutu tekrar çalıştırdı ve bu sefer işe yaradı.
arie


4

Windows 7 SDK araç setlerini kullanarak PyCrypto oluşturmak mümkündür. Windows 7 SDK'nın iki sürümü vardır. Orijinal sürüm (.Net 3.5 için) VS 2008 komut satırı derleyicilerini içerir. Hem 32 hem de 64 bit derleyiciler kurulabilir.

İlk adım, hızlı aritmetik sağlamak için mpir'i derlemektir . Gmpy kütüphanesinde kullandığım işlemi belgeledim . SDK derleyicisini kullanarak mpir oluşturmaya yönelik ayrıntılı talimatları sdk_build adresinde bulabilirsiniz.

DOS komut isteminden SDK derleyicilerini kullanmak için temel adımlar şunlardır:

1) vcvars32.bat veya vcvars64.bat dosyasını gerektiği gibi çalıştırın.

2) Komut isteminde "set MSSdk = 1" komutunu yürütün

3) Sorulduğunda, "set DISTUTILS_USE_SDK = 1" komutunu yürütün

Bu, "python setup.py install" komutunun C koduyla ilgili başka bir sorun olmadığını varsayarak başarılı olmasını sağlar. Ancak, mpir'i etkinleştirmek ve mpir kitaplıklarını bulmak için birkaç PyCrypto dosyasını düzenlemek zorunda olduğumu belli belirsiz hatırlıyorum, ancak şu anda Windows sistemime sahip değilim. Adımları yeniden oluşturmak için zamanımın olması birkaç gün alacak. O zamana kadar başarı bildirmediyseniz, PyCrypto adımlarını gönderirim. Adımlar, mpir'i derleyebildiğinizi varsayacaktır.

Umarım bu yardımcı olur.



3

Bu yüzden MinGW'yi yüklüyorum ve bunu kurulum satırında seçtiğiniz derleyici olarak yapıştırıyorum. Ama sonra "RuntimeError: chmod hatası" hatasını alıyorum.

Bu hata "RuntimeError: chmod error", yükleme komut dosyası chmodkomutu bulamadığı için oluşur .

Dünyada bunun üstesinden nasıl gelebilirim?

Çözüm

Yalnızca MSYS ikili dosyalarını PATH'e eklemeniz ve yükleme komut dosyasını yeniden çalıştırmanız gerekir .

(Not: MinGW'nin MSYS ile geldiğini unutmayın)

Misal

Örneğin, klasördeysek C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1>

C:\.....>set PATH=C:\MinGW\msys\1.0\bin;%PATH%
C:\.....>python setup.py install

İsteğe bağlı: komut dosyasını yeniden çalıştırmadan önce temizlemeniz gerekebilir:

`C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean`

3
  1. Git " Python 2.7 için Microsoft Visual C ++ derleyicisi " (bu ben birlikte adımlar aşağıda koymak bunları yaptık) ve "Sistem Gereksinimleri" dayalı devam edin.

  2. Yükleme Setuptools (6.0 veya üzeri otomatik olarak Python için gereklidir Setuptools bu derleyici paketi algılamak) : yoluyla pip install setuptools veya indirme kaynak "Setuptools yükleyici işe koşulması" dan "ez_python.py" olarak filestystem bu dosya Somwhere tasarruf ve birlikte yükleyin:python ez_python.py

  3. Tekerleği takın (önceden oluşturulmuş ikili paketler üretmek için tekerlek önerilir). Şunlarla yükleyebilirsiniz:pip install wheel

  4. Tüm kullanıcılar için "Python 2.7 için Microsoft Visual C ++ Derleyicisi" ni yüklemek üzere Windows yükseltilmiş Komut İstemi cmd.exe dosyasını açın ("Yönetici olarak çalıştır" ile) . Bunu yapmak için aşağıdaki komutu kullanabilirsiniz: msiexec / i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1sadece dosyalamak için kendi yolunuzu kullanın:msiexec /i <path to MSI> ALLUSERS=1

  5. Şimdi pycrypto'yu aşağıdakilerle kurabilmelisiniz: pip install pycrypto


3

Windows'daysanız ve Pycrypcto'yu yüklemekle uğraşıyorsanız: pip install pycryptodome'u kullanın. Bir mucize gibi çalışır ve hayatınızı birçok konfigürasyon ve ayar yapmaya çalışmaktan çok daha kolay hale getirir.


2

Bu muhtemelen en uygun çözüm değildir, ancak MS'den ücretsiz Visual C ++ Express paketini indirip yükleyebilirsiniz. Bu size PyCrypto kodunu derlemek için ihtiyacınız olan C ++ derleyicisini verecektir.


2

Cevabım burada belirtilen sorunla ilgili olmayabilir, ancak Crypto.Cipher geçerli bir ithalat değildi Python 3.4 ile aynı sorun vardı . Bu yüzden PyCrypto'yu yüklemeyi denedim ve sorunlara girdim.

3.4 ile bulduğum bazı araştırmalardan sonra pycryptodome kullanmalısınız .

Pycharm kullanarak pycryptodome yükledim ve iyiydim.

dan Crypto.Cipher ithalat AES


1

Bu yüzden MinGW'yi yüklüyorum ve bunu kurulum satırında seçtiğiniz derleyici olarak yapıştırıyorum. Ama sonra "RuntimeError: chmod hatası" hatasını alıyorum.

Minys paketi altında msys paketini kurmanız gerekiyor

resim açıklamasını buraya girin

ve PATH env değişkeninize aşağıdaki girişleri ekleyin.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [Burada chmod çalıştırılabilir bulacaksınız]

Sonra komutunuzu normal Windows komut isteminden çalıştırın.


0

Tuhaf yasal nedenlerden dolayı, ikili dosyalar normal şekilde yayınlanmaz. Boşluk normalde en iyi ikinci kaynaktır. Ancak oldukça uzun bir süreden bu yana, boşluk koruyucusu güncellenmedi. [ Https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0] adresindeki zip'i kullanın


2
Dropbox'dan ikili dosyaları indirin.
Smit Johnth

İkili dosyayı indirdim ve VirusTotal ile taradım. Tabii ki, bu sadece bir virüsü olmadığı anlamına gelir, şifreleme arka kapısı olmadığı anlamına gelmez. Neyse ki sadece geliştirme için kullanıyorum çünkü bu projeyi PythonAnywhere'de barındırıyorum.
Aralık vs. Aralık

0

Adım 1: Visual C ++ 2010 Express'i buradan yükleyin .

(Microsoft Visual Studio 2010 Service Pack 1'i yüklemeyin)

Adım 2: Tüm Microsoft Visual C ++ 2010 Yeniden Dağıtılabilir paketlerini Denetim Masası \ Programlar ve Özellikler öğesinden kaldırın. Bunları yapmazsanız yükleme, "Yükleme sırasında önemli hata" hatasıyla başarısız olur.

Adım 3: Visual Studio 2010 için Windows SDK'nın çevrimdışı sürümünü (v7.1) buradan yükleyin . 64 bit uzantılar için bu gereklidir. Windows, Pismo gibi ISO'lar için yerleşik montaja sahiptir.

Adım 4: ISO dosyasını Pismo File Mount Denetim Paketi ile kurmanız gerekir. Pismo'yu buradan indirin

Adım 5: İndirilen ISO dosyasına sağ tıklayın ve Pismo ile montajı seçin. Daha sonra, setup.exe yerine Setup \ SDKSetup.exe dosyasını yükleyin.

Adım 6a: Dizini C: \ Program Files (x86) \ Microsoft Visual Studio version \ VC \ olarak değiştirerek C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64 içinde bir vcvars64.bat dosyası oluşturun komut istemi. Komut istemine command yazın: cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

Adım 6b: Bu Komut İstemi penceresini x86 platformlarını hedefleyen 64 bit komut satırı derlemeleri için yapılandırmak için komut istemine şunu girin: vcvarsall x86Daha fazla seçenek için burayı tıklatın .

Adım 7: Komut isteminde, aşağıdakileri yazarak PyCrypto'yu yükleyin: C:\Python3X>pip install -U your_wh_file


0

Python için Pycharm'ım vardı.

  1. Adresine git pycharm -> file -> setting -> project interpreter

  2. Tıklamak +

  3. "pycrypto"Paketi arayın ve yükleyin

Not: "Python 2.7 için Microsoft Visual C ++ Derleyicisi" yüklü değilse, yükleme için istemde bulunacak, kurulum bittikten sonra yukarıdaki adımları deneyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.