[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"project-38629539":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":79,"maker_in_thread":203,"shape":216,"grid":220,"attempts":310,"same_week":311,"maker_shows":38,"maker_hidden":341,"reader_version":342,"card":343},"38629539","PyApp","runtime installer for Python applications","title","Show HN: PyApp – runtime installer for Python applications","https:\u002F\u002Fgithub.com\u002Fofek\u002Fpyapp","github.com","ofek",1702484228,2023,109,44,587,3109,19,"notable","dev_tools","application packaging","cli",[24,25,26,27],"python packaging","python binary","pyinstaller alternative","distribute python apps","loved",0.198,{"positive":31,"neutral":32,"mixed":33,"critical":34},8,17,3,0,28,{"idea":37,"performance":39,"docs":40},{"positive":38,"critical":34},4,{"positive":34,"critical":34},{"positive":41,"critical":34},2,[33,34,43,34,43,43,33,33,34,43,33,33,43,33,34,33,34,33,33,33,33,34,33,34,33,34,33,34,33,34,33,43,34,43,33,33,33,34,33,43],5,null,{"problem":46,"audience":56,"pricing":44,"motivation":44,"time_to_build":44,"stack":65,"openness":78,"stage":78,"team_size":78},{"value":47,"source":48,"evidence":49},"Distributing Python applications as binaries that run without a Python install","maker",[50,53],{"id":51,"by":11,"text":52},"38636812","- This is a tool to build binaries for Python applications. It could have just as been written in any other language that can produce binaries. - Yes that is correct,…",{"id":54,"by":11,"text":55},"38637868","Sorry about that! What you said is basically correct: this is for distributing Python applications. You configure via environment variables at build-time and the binary you ship…",{"value":57,"source":58,"evidence":59},"Python developers distributing applications to end users","inferred",[60,61],{"id":54,"by":11,"text":55},{"id":62,"by":63,"text":64},"38630999","anze3db","This looks really awesome! I'll try it out on some of my projects that I never tried to share outside of the Python community because setting up Python and\u002For pipx always felt…",[66,74],{"value":67,"source":68,"evidence":69},"Rust","commenter",[70],{"id":71,"by":72,"text":73},"38633817","globular-toast","I wondered the same, then checked the source. The difference is this one is made with Rust.",{"value":75,"source":48,"evidence":76},"Python",[77],{"id":51,"by":11,"text":52},"unknown",{"praise":80,"objections":102,"requests":131,"questions":151,"alternatives":173},[81,89,96],{"value":82,"source":68,"evidence":83},"Useful for distributing Python apps to non-expert users",[84,85],{"id":62,"by":63,"text":64},{"id":86,"by":87,"text":88},"38638068","chrooted-user","This looks great, do I understand correctly that the full isolation option allows the binary to be fully self-contained and does not require any connectivity for the app to run?…",{"value":90,"source":68,"evidence":91},"Fully self-contained binaries suit air-gapped environments",[92,93],{"id":86,"by":87,"text":88},{"id":94,"by":11,"text":95},"38638365","Yup that's right!",{"value":97,"source":48,"evidence":98},"Avoids antivirus false positives seen with PyInstaller",[99],{"id":100,"by":11,"text":101},"38635802","Yes.",[103,114,125],{"value":104,"source":68,"evidence":105},"Documentation lacks a simple quickstart example",[106,110],{"id":107,"by":108,"text":109},"38637871","Gazoche","This is really cool but I think the documentation could use a simple quickstart example, that takes actual Python code and shows how to turn it into an executable. Right now it…",{"id":111,"by":112,"text":113},"38637685","AndyKluger","Thanks, I look forward to this! For some possibly useful documentation feedback: I got confused. Normally I would install a tool, check out its `--help` content, then maybe try…",{"value":115,"source":68,"evidence":116},"Cowsay example is confusing",[117,121],{"id":118,"by":119,"text":120},"38635828","simonw","I don't fully understand the example in the GIF: - Why is it using Cargo if this is a Python tool? - How does it know that it should install \"cowsay\"? Is the only reference to…",{"id":122,"by":123,"text":124},"38647901","holbue","Looks promising—thanks for sharing! Is it possible to include non-Python binaries somehow? Similar to how it is done with PyInstaller with the --add-binary argument? P.S.: It has…",{"value":126,"source":48,"evidence":127},"Binaries must be built on each target platform",[128],{"id":129,"by":11,"text":130},"38642349","You would have to compile the binary on the target platform. Eventually I will support cross compiling but even then there will still be one binary for every…",[132,136,140],{"value":133,"source":48,"evidence":134},"Cross compilation support",[135],{"id":129,"by":11,"text":130},{"value":137,"source":68,"evidence":138},"Support for non-Python binaries like PyInstaller's add-binary",[139],{"id":122,"by":123,"text":124},{"value":141,"source":68,"evidence":142},"Simple hello-world or end-to-end examples",[143,147],{"id":144,"by":145,"text":146},"38630263","dkroy","This looks really useful. I would love to see some more end-to-end examples though it's nice to see the animated one right away in the readme.",{"id":148,"by":149,"text":150},"38634314","notatallshaw","An example of running this on the command line that isn't a GIF.",[152,159,166],{"value":153,"source":68,"evidence":154},"How does it differ from PyInstaller",[155],{"id":156,"by":157,"text":158},"38630516","pabe","How does it differentiate from PyInstaller?",{"value":160,"source":68,"evidence":161},"Can it produce executables that run on other operating systems",[162],{"id":163,"by":164,"text":165},"38640774","davins90","Hi! It seems great! If I understood it well, does this allow to create an executable file for python file that, even if built on windows, can run on mac, linux, whatever....…",{"value":167,"source":68,"evidence":168},"Can it be run inside Docker to build binaries",[169,170],{"id":163,"by":164,"text":165},{"id":171,"by":11,"text":172},"38643832","Yes if you want to build the binaries in containers you could mount a directory where the artifacts should go.",[174,182,189,196],{"value":175,"source":68,"evidence":176},"PyInstaller",[177,181],{"id":178,"by":179,"text":180},"38633505","ktm5j","I've had some success with pyinstaller but recently have been getting inconsistent results with an application I've written that uses pyside6. It was working for a while but all…",{"id":156,"by":157,"text":158},{"value":183,"source":68,"evidence":184},"shiv",[185],{"id":186,"by":187,"text":188},"38632809","qubidt","How does this compare to shiv? https:\u002F\u002Fgithub.com\u002Flinkedin\u002Fshiv",{"value":190,"source":68,"evidence":191},"cosmopolitan",[192],{"id":193,"by":194,"text":195},"38634521","delijati","will go on my \"to try\" list where i already have cosmopolitan [2]. my last setup (windows) was shiv + wine + nsis (used that as pyinstaller had some issues)[2] [1]…",{"value":197,"source":68,"evidence":198},"cxFreeze and py2exe",[199],{"id":200,"by":201,"text":202},"38633346","toyg","... or py2exe, cxFreeze...",{"comments":204,"answered":205,"key":206},14,10,[207,210,213],{"id":208,"text":209},"38631140","I think this is the most common pattern where you wish to execute a script based on a requirements file: https:\u002F\u002Fofek.dev\u002Fpyapp\u002Flatest\u002Fexamples\u002F#dependency-file-with-script",{"id":211,"text":212},"38633213","Yes it will that is exactly correct! That particular example actually was after I was reading how to set up Stable Diffusion and other AI stack stuff.",{"id":214,"text":215},"38633548","Can you please let me know how your experience is? Feel free to even open an issue on the repo!",{"commenters":217,"max_depth":43,"maker_replies":204,"first_comment_mins":218,"lifespan_hours":219},23,43,31,[221,225,228,232,234,236,237,239,241,243,247,249,252,253,255,256,257,258,260,262,264,267,269,271,273,275,276,277,278,280,282,285,287,289,292,294,295,298,300,301,302,304,307,308],[222,34,33,223,224,34],"38630937","project\u002Fneutral\u002Fnone","pantsforbirds",[208,34,34,226,11,227],"project\u002Fneutral\u002Fdocs",1,[229,34,43,230,231,34],"38633049","project\u002Fpositive\u002Fidea","isoprophlex",[211,34,34,233,11,227],"project\u002Fneutral\u002Fidea",[235,34,43,230,231,34],"38633887",[62,227,43,230,63,34],[238,227,33,223,72,34],"38632466",[178,227,33,240,179,34],"project\u002Fneutral\u002Fperformance",[214,227,34,242,11,227],"maker\u002Fneutral\u002Fnone",[244,227,34,245,246,34],"38636579","commenter\u002Fneutral\u002Fnone","theemathas",[144,41,43,248,145,34],"project\u002Fpositive\u002Fdocs",[250,41,33,251,63,34],"38630613","maker\u002Fneutral\u002Fdocs",[148,41,33,226,149,34],[254,41,43,248,63,34],"38635655",[118,33,33,226,119,34],[51,33,34,226,11,227],[193,38,33,223,194,34],[259,38,34,242,11,227],"38634607",[107,43,33,261,108,34],"project\u002Fmixed\u002Fdocs",[186,263,33,233,187,34],6,[265,263,33,233,266,34],"38632864","potatochup",[268,263,34,223,11,227],"38633062",[163,270,33,223,164,34],7,[129,270,34,272,11,227],"project\u002Fneutral\u002Fexecution",[274,270,33,223,164,34],"38642433",[171,270,34,223,11,227],[111,31,33,261,112,34],[54,31,34,226,11,227],[122,279,33,261,123,34],9,[281,279,34,223,11,227],"38648881",[283,205,33,240,284,34],"38633862","pacifika",[286,205,34,242,11,227],"38633957",[288,205,34,245,284,34],"38634219",[290,205,33,223,291,34],"38635760","a1o",[86,293,43,230,87,34],11,[94,293,34,223,11,227],[296,293,43,297,87,34],"38640176","project\u002Fpositive\u002Fnone",[156,299,33,233,157,34],12,[200,299,33,223,201,34],[71,299,33,223,72,34],[303,299,34,233,11,227],"38634134",[305,299,33,223,306,34],"38634547","seanthemon",[100,299,34,223,11,227],[309,299,43,297,306,34],"38639298",[],[312,317,321,326,331,336],{"id":313,"name":314,"points":315,"category":316},"38596953","Sagittarius",434,"ai",{"id":318,"name":319,"points":320,"category":316},"38611700","macOSpilot",430,{"id":322,"name":323,"points":324,"category":325},"38635695","Agora",317,"web_saas",{"id":327,"name":328,"points":329,"category":330},"38632970","CspChan",271,"languages",{"id":332,"name":333,"points":334,"category":335},"38612680","Advent of Distributed Systems",263,"learning_science",{"id":337,"name":338,"points":339,"category":340},"38577240","OSS Software",245,"other",false,"v2",{"id":344,"name":5,"line":6,"ai":341,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":345,"top":18,"kw":346,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":347,"url":9,"mix":348,"praise":82,"objection":104,"sub":21},38629539,0.2,[24,25,26,27],"3050553305335303033330303030303505333035",[31,32,33,34],1794036646100]