Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Příspěvky - tdulik

#1
Citace od: qelurg kdy 04. 09. 2022, 10:33:29
uetoyo: díky. Pochopil jsem z toho, že pro Python 3.10 potřebuji překladač Visual C++ verzi 14.x, a že jej najdu v Build tools. Na stránkách MS jsem se zaregistroval do nějakého Visual Studio subscriptions. Tam se nabízí ke stažení Visual Studio 2022, 2019 a 2017.

"cython for Windows" se standardní Windows-verzí Python-u (tou, která je kompilovaná MSVC) - z toho popisu výše cítím potenciální "dependency hell". Vývoj v cython-u pod Windows s MSVC je možná docela exotická specialita, zatímco cython pod msys2 nabízí mainstreamové řešení s posledními stable verzemi všech balíčků - stejné, jako máte v Linuxu.

Poznámka lehce mimo téma: zjistil jsem, že na mém Windows PC mám Python 3.8, který je součástí instalace Inkscape, a ten je taky zkompilovaný pomocí GCC (takže nějakou verzí mingw). Asi se vývojáři Inkscape též nechtěli trápit s MSVC "specialitami" :-)

Jinak ovšem ze standardní windows command line můžu spustit i Python z distribuce msys2, takto:


c:\>set PATH=c:\msys64\mingw64\bin\
c:\>python
Python 3.10.6 (main, Aug 12 2022, 18:00:29)  [GCC 12.1.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
#2
Citace od: qelurg kdy 03. 09. 2022, 08:13:52
No, Cython je transkompiler do jazyka C, takže předpokládám, že hlavně potřebuji ekvivalent linuxového

sudo apt-get update
sudo apt-get install build-essential


Kromě možnosti "instalace překladače MSVC" jsou ještě další 2 možnosti:

  • cygwin
  • msys2

Pokud chcete svoje programy, přeložené v cython-u, distribuovat na jiná PC, možnost "cygwin" je komplikovanější, protože exe soubory přeložené pod cygwin vyžadují přítomnost funkční cygwin instalace.
V takovém případě je lepší volbou msys2: je to vlastně "build-essential" s windows verzí C překladače, tj. např. mingw32 nebo mingw64. Oproti různým dalším distribucím projektu mingw, které obsahují pouze gcc + C/C++ knihovny, obsahuje msys2 - podobně jako cygwin - spoustu dalších překladačů vč. python a cython, a také balíčkovací systém pacman.  Narozdíl od cygwin-u, msys2 cílí na to, aby exe soubory přeložené v msys2 šlo distribuovat na další PC bez nutnosti instalace celého msys2 na to další PC.

Zkusil jsem teď do svého msys2 doinstalovat cython:
pacman -S cython
Tím se mi nainstalovala poslední stable verze 0.29.32.
Zkusil jsem v tom spustit tutorial https://riptutorial.com/cython/example/14478/hello-world - vše funguje.
Výsledkem je adresář build a soubory: 
hello.c 
hello.cpython-310-x86_64-msys.dll

Jestli se to dá spustit na jiném PC a jak toho dosáhnout jsem nezkoušel - nejsem v pythonu zběhlý, jen hádám, že by to chtělo ještě něco jako py2exe (???) pro zajištění binární kompatibility interpretru pythonu (na tom dalším PC) s DLL "hello.cpython-310-x86_64-msys.dll", které vyrobil cython  (?)