{"id":15010,"date":"2024-08-25T16:57:44","date_gmt":"2024-08-25T14:57:44","guid":{"rendered":"https:\/\/www.beseit.net\/?p=15010"},"modified":"2024-08-27T12:30:48","modified_gmt":"2024-08-27T10:30:48","slug":"pycharm-i-utilitzant-la-versio-de-python-del-synology-nas","status":"publish","type":"post","link":"http:\/\/www.beseit.net\/?p=15010","title":{"rendered":"PyCharm i utilitzant la versi\u00f3 de Python del Synology NAS"},"content":{"rendered":"\n<p>Per fer c\u00f3rrer un script com <code>main.py<\/code> amb <strong>PyCharm<\/strong> i utilitzar la versi\u00f3 de <strong>Python<\/strong> del teu <strong>Synology NAS<\/strong>, segueix aquests passos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Crea un projecte a PyCharm<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Si est\u00e0s a la pantalla de benvinguda, fes clic a \u201cNew Project\u201d. Si ja tens un projecte obert, selecciona \u201cFile\u201d &gt; \u201cNew Project\u201d al men\u00fa principal.<\/li>\n\n\n\n<li>Escull un projecte de tipus \u201cPure Python\u201d per comen\u00e7ar. Aquesta plantilla crear\u00e0 un projecte buit.<\/li>\n\n\n\n<li>Defineix la ubicaci\u00f3 del projecte i selecciona l\u2019entorn virtual (Project venv \u00e9s suficient per defecte).<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-and-running-your-first-python-project.html\" target=\"_blank\" rel=\"noreferrer noopener\">Fes clic a \u201cCreate\u201d per crear el projecte<\/a><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-and-running-your-first-python-project.html\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>1<\/sup><\/a>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Crea un fitxer Python<\/strong>:\n<ul class=\"wp-block-list\">\n<li>A la finestra del projecte, selecciona la carpeta arrel del projecte.<\/li>\n\n\n\n<li>Fes clic amb el bot\u00f3 dret i selecciona \u201cFile\u201d &gt; \u201cPython File\u201d.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-and-running-your-first-python-project.html\" target=\"_blank\" rel=\"noreferrer noopener\">Escriu \u201cmain.py\u201d com a nom del fitxer i fes clic a \u201cOK\u201d per crear-lo<\/a><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-and-running-your-first-python-project.html\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>1<\/sup><\/a>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Edita el codi Python<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Obre el fitxer <code>main.py<\/code> creat.<\/li>\n\n\n\n<li>Comen\u00e7a a escriure el teu codi Python.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-and-running-your-first-python-project.html\" target=\"_blank\" rel=\"noreferrer noopener\">PyCharm analitzar\u00e0 el teu codi en temps real i et mostrar\u00e0 indicacions d\u2019errors o suggeriments mentre escrivis<\/a><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-and-running-your-first-python-project.html\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>1<\/sup><\/a>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Configura l\u2019int\u00e8rpret Python<\/strong>:\n<ul class=\"wp-block-list\">\n<li>V\u00e9s a \u201cFile\u201d &gt; \u201cSettings\u201d &gt; \u201cProject: &lt;nom_del_teuproyecte&gt;\u201d &gt; \u201cPython Interpreter\u201d.<\/li>\n\n\n\n<li>Fes clic a l\u2019icona de roda dentada i selecciona \u201cAdd\u201d.<\/li>\n\n\n\n<li>Escull \u201cSSH Interpreter\u201d i configura la connexi\u00f3 SSH al teu NAS.<\/li>\n\n\n\n<li>Selecciona la versi\u00f3 de Python que has creat a l\u2019entorn virtual (per exemple, <code>dateutil_env<\/code>).<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-virtual-environment.html\" target=\"_blank\" rel=\"noreferrer noopener\">Fes clic a \u201cOK\u201d per aplicar els canvis<\/a><a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-virtual-environment.html\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>2<\/sup><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Ara pots desenvolupar i executar el teu codi Python a PyCharm utilitzant la versi\u00f3 de Python del teu Synology NAS. Si tens m\u00e9s preguntes o necessites m\u00e9s ajuda, no dubtis a preguntar! ?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"831\" height=\"461\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-16.png\" alt=\"\" class=\"wp-image-15013\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-16.png 831w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-16-300x166.png 300w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-16-768x426.png 768w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-16-500x277.png 500w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"643\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-17.png\" alt=\"\" class=\"wp-image-15015\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-17.png 700w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-17-300x276.png 300w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-17-327x300.png 327w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"695\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-18.png\" alt=\"\" class=\"wp-image-15017\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-18.png 709w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-18-300x294.png 300w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-18-306x300.png 306w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"702\" height=\"390\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-21.png\" alt=\"\" class=\"wp-image-15033\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-21.png 702w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-21-300x167.png 300w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-21-500x278.png 500w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"https:\/\/geekflare.com\/es\/python-web-servers\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pasareles<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"703\" height=\"387\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-22.png\" alt=\"\" class=\"wp-image-15035\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-22.png 703w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-22-300x165.png 300w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-22-500x275.png 500w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/figure>\n\n\n\n<p>http:\/\/localhost:63342\/0-python\/test.html?_ijt=ghdjf3ld1spo5i17njv68ffpt5<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"745\" height=\"308\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/image.png\" alt=\"\" class=\"wp-image-15019\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/image.png 745w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/image-300x124.png 300w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/image-500x207.png 500w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/figure>\n\n\n\n<p>Estic treballant l&#8217;entorn Python amb SO: Nginx, instal\u00b7lat en un synology. sobre el terminal SSH funciona sense problema per\u00f2 al intentar fer la sortida per http:\/\/81.0.60.36\/0-python\/test.html, html funciona correctament per\u00f2 el .py fa \u00fanicament un llistat del programa font sense obeir les instruccions python, qu\u00e8 pot ser?<\/p>\n\n\n\n<p class=\"has-medium-font-size\">En un entorn com el teu, cal configurar Nginx perqu\u00e8 processi scripts Python utilitzant un servidor d&#8217;aplicacions, com <mark style=\"background-color:rgba(0, 0, 0, 0);color:#fa1010\" class=\"has-inline-color\"><strong><code>uWSGI<\/code>,<\/strong><\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f40e0e\" class=\"has-inline-color\"><strong> <code>Gunicorn<\/code><\/strong><\/mark> o fins i tot <mark style=\"background-color:rgba(0, 0, 0, 0);color:#ea1111\" class=\"has-inline-color\"><code>FastCGI<\/code><\/mark><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ea1111\" class=\"has-inline-color\">.<\/mark><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Possible Causes and Solutions:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Nginx is Not Configured to Handle Python Scripts:<\/strong>\n<ul class=\"wp-block-list\">\n<li>By default, Nginx cannot directly execute Python scripts. Nginx typically serves static files (like <code>.html<\/code>, <code>.css<\/code>, <code>.js<\/code>), but for dynamic content (like Python scripts), you need a bridge to execute the code.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size\">Gunicorn es similar a <\/p>\n\n\n\n<p>activar -&gt;Gunicorn &#8211;bind 0.0.0.0:8080 wsgi:app<\/p>\n\n\n\n<p>tancar Gunicorn (<code>Ctrl + C<\/code>)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"497\" height=\"147\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-19.png\" alt=\"\" class=\"wp-image-15025\" srcset=\"http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-19.png 497w, http:\/\/www.beseit.net\/wp-content\/uploads\/2024\/08\/imatge-19-300x89.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/figure>\n\n\n\n<p>S\u00ed, <strong>Gunicorn<\/strong> \u00e9s una excel\u00b7lent alternativa a uWSGI i no requereix compilar cap codi en C, cosa que el fa m\u00e9s f\u00e0cil d&#8217;instal\u00b7lar i configurar, especialment en entorns com el teu, on la instal\u00b7laci\u00f3 d&#8217;un compilador de C pot ser problem\u00e0tica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pasos per Configurar Nginx amb Gunicorn<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instal\u00b7lar Gunicorn:<\/strong><ul><li>Primer, has d&#8217;instal\u00b7lar Gunicorn dins del teu entorn virtual de Python.<\/li><\/ul>bash<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per fer c\u00f3rrer un script com main.py amb PyCharm i utilitzar la versi\u00f3 de Python del teu Synology NAS, segueix aquests passos: Ara pots desenvolupar i executar el teu codi Python a PyCharm utilitzant la versi\u00f3 de Python del teu &hellip; <a href=\"http:\/\/www.beseit.net\/?p=15010\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":8179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-15010","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloc-de-notes"],"_links":{"self":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15010"}],"version-history":[{"count":14,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15010\/revisions"}],"predecessor-version":[{"id":15037,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15010\/revisions\/15037"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/8179"}],"wp:attachment":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15010"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}