Czy powinienem używać Pythona 32-bitowego czy Pythona 64-bitowego


143

Mam 64-bitową instalację win7. Czy muszę używać 64-bitowego Pythona? Jakie są różnice między 32-bitową i 64-bitową wersją Pythona? Czy różne pakiety Pythona (takie jak south, django, mysqldb itp.) Obsługują tylko 32-bitowe / 64-bitowe?


Odpowiedzi:


91

Wersja 64-bitowa pozwoli pojedynczemu procesowi na użycie większej ilości pamięci RAM niż 32-bitowa, jednak może się okazać, że rozmiar pamięci podwoi się w zależności od tego, co przechowujesz w pamięci RAM (w szczególności liczby całkowite).

Na przykład, jeśli Twoja aplikacja wymaga> 2 GB pamięci RAM, więc przełączasz się z 32-bitowego na 64-bitowy, może się okazać, że Twoja aplikacja wymaga teraz> 4 GB pamięci RAM.

Sprawdź, czy wszystkie moduły innych firm są dostępne w wersji 64-bitowej, w przeciwnym razie może być łatwiej pozostać w międzyczasie na 32-bitowym


13
Ahaik, nie ma 64-bitowych plików binarnych dla MysqlDB - to jest powód, dla którego trzymam się 32-bitowego Pythona.
Jochen Ritzel,

12
Czy moduły innych firm naprawdę muszą wyraźnie obsługiwać 64-bitowe?
Jonathan

8
Używam 64-bitowego Pythona 2.7 od kilku miesięcy (pięć lat po tym poście) i chociaż powiedziałbym, że zdecydowanie warto - posiadanie dostępu do całej tej pamięci RAM jest całkiem fajne, jeśli nie chcesz tracić tyle czasu zarządzanie danymi - wciąż istnieje kilka bibliotek, które są albo nieco denerwujące, jeśli chodzi o uzyskanie 64-bitowych wersji, albo w wielu przypadkach prawie niemożliwe do użycia (32-bitowe biblioteki DLL są jednym z przykładów zasobu, bez którego nie udało mi się jeszcze wykorzystać ładowanie 32-bitowej wersji Pythona)
Darren Ringer

12
Jest też odwrotnie: tensorflow jest dostępny tylko dla 64-bitowego Pythona w systemie Windows, chyba że chcesz go zbudować.
TrakJohnson

28

Z mojego doświadczenia wynika, że ​​korzystanie z wersji 32-bitowej jest bardziej bezproblemowe. O ile nie pracujesz nad aplikacjami, które intensywnie wykorzystują pamięć (głównie obliczenia naukowe, które używają więcej niż 2 GB pamięci), lepiej jest z wersjami 32-bitowymi, ponieważ:

  1. Zwykle używasz mniej pamięci.
  2. Masz mniej problemów z korzystaniem z COM (ponieważ korzystasz z systemu Windows).
  3. Jeśli musisz załadować biblioteki DLL, najprawdopodobniej są one również 32-bitowe. Python 64-bitowy nie może załadować 32-bitowych bibliotek bez kilku ciężkich hacków, uruchamiających inny Python, tym razem w wersji 32-bitowej i używając IPC.
  4. Jeśli musisz załadować biblioteki DLL, które sam skompilujesz, będziesz musiał skompilować je do wersji 64-bitowej, co jest zwykle trudniejsze (szczególnie jeśli używasz MinGW w systemie Windows).
  5. Jeśli kiedykolwiek użyjesz PyInstaller lub py2exe, narzędzia te będą generować pliki wykonywalne z taką samą bitowością jak Twój interpreter Pythona.

6

Nie musisz używać wersji 64-bitowej, ponieważ system Windows będzie emulował programy 32-bitowe przy użyciu wow64. Jednak użycie wersji natywnej (64-bitowej) zapewni większą wydajność.


4

Używaj wersji 64-bitowej tylko wtedy, gdy musisz pracować z dużymi ilościami danych, w tym scenariuszu 64 bity działają lepiej z niewygodą, o której powiedział John La Rooy; jeśli nie, trzymaj się 32 bitów.


2

Miałem problem z uruchomieniem aplikacji Python (uruchamiającej duże ramki danych) w 32 - otrzymałem komunikat MemoryError, podczas gdy na 64 działało dobrze.


0

Pakiety uczenia maszynowego, takie jak tensorflow 2.x, są zaprojektowane do działania tylko w 64-bitowym języku Python, ponieważ wymagają dużej ilości pamięci.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.