Path: csiph.com!eternal-september.org!feeder.eternal-september.org!border1.nntp.ams1.giganews.com!nntp.giganews.com!bcyclone01.am1.xlned.com!bcyclone01.am1.xlned.com!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'executable': 0.07; 'responding': 0.07; 'variant': 0.07; 'api': 0.09; 'accelerator': 0.09; 'message-id:@4ax.com': 0.09; 'part,': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'seen,': 0.09; 'statistical': 0.09; 'stdout': 0.09; 'subtle': 0.09; 'unpacking': 0.09; 'stored': 0.10; 'python': 0.10; 'python.': 0.11; 'files.': 0.13; 'output': 0.13; 'interpreter': 0.15; '"message': 0.16; '(ie,': 0.16; '>on': 0.16; '>that': 0.16; '>to': 0.16; 'amiga': 0.16; 'api,': 0.16; 'at.': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'shell"': 0.16; 'stdin': 0.16; 'stuff,': 0.16; 'subprocess': 0.16; 'such,': 0.16; 'looked': 0.16; 'copied': 0.18; 'specifies': 0.18; 'url:home': 0.18; 'language': 0.19; 'versions': 0.20; 'windows': 0.20; '2015': 0.20; 'aug': 0.20; '(the': 0.22; 'gcc': 0.22; 'os,': 0.22; 'unix/linux': 0.22; 'programming': 0.22; 'defined': 0.23; 'bit': 0.23; '(or': 0.23; 'written': 0.24; 'mon,': 0.24; 'module': 0.25; 'install': 0.25; "i've": 0.25; "doesn't": 0.26; 'command': 0.26; 'header:X -Complaints-To:1': 0.26; 'earlier': 0.27; 'supported': 0.27; 'packaging': 0.27; '-0500,': 0.29; 'another.': 0.29; 'matplotlib': 0.29; 'perl': 0.29; "they'll": 0.29; '(including': 0.30; 'code': 0.30; 'operations': 0.31; 'probably': 0.31; 'post': 0.31; 'core': 0.32; 'computer.': 0.32; 'maybe': 0.33; 'run': 0.33; 'source': 0.33; 'common': 0.33; 'directory,': 0.33; 'stream': 0.33; 'open': 0.33; 'languages': 0.34; 'running': 0.34; 'world,': 0.35; 'next': 0.35; 'could': 0.35; 'besides': 0.35; 'files,': 0.35; 'filter': 0.35; 'saved': 0.35; 'skip:> 10': 0.35; 'level': 0.35; 'but': 0.36; 'too': 0.36; 'there': 0.36; 'possible': 0.36; 'to:addr :python-list': 0.36; 'subject:: ': 0.37; 'two': 0.37; 'display': 0.37; 'expect': 0.37; 'received:org': 0.37; 'done.': 0.37; 'charset:us-ascii': 0.37; 'things': 0.38; 'doing': 0.38; 'creation': 0.38; 'someone': 0.38; 'files': 0.38; 'means': 0.39; 'goes': 0.39; 'along': 0.39; 'resources': 0.39; 'to:addr:python.org': 0.40; 'some': 0.40; 'programs': 0.62; 'skip:n 10': 0.62; 'making': 0.62; 'more': 0.63; 'between': 0.65; 'better.': 0.66; 'differences': 0.66; 'decided': 0.66; 'stated': 0.70; 'programs,': 0.72; 'plots': 0.84; 'dennis': 0.91 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dennis Lee Bieber Subject: Re: Pipes Date: Mon, 10 Aug 2015 18:41:22 -0400 Organization: IISS Elusive Unicorn References: <2ZWdnZJUbYdxkVTInZ2dnUU7-I-dnZ2d@earthlink.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: adsl-108-68-178-61.dsl.klmzmi.sbcglobal.net X-Newsreader: Forte Agent 6.00/32.1186 X-No-Archive: YES X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 60 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1439246491 news.xs4all.nl 2847 [2001:888:2000:d::a6]:46302 X-Complaints-To: abuse@xs4all.nl X-Received-Bytes: 7428 X-Received-Body-CRC: 874133156 Xref: csiph.com comp.lang.python:95232 On Mon, 10 Aug 2015 15:43:26 -0500, "E.D.G." declaimed the following: > Other important resources would be the ability to perform rapid >calculations and the ability to generate plots that could display on the >screen and also be saved as .png files etc. > None of which are "native" to Python. The common number cruncher accelerator is to install numpy/scipy, matplotlib (or related) for plots/charts, and maybe PIL/pillow for generation of image files. > The language also has to have the ability to be "cloned." That means >that it could be stored in some directory that could be copied from one >computer to another. And programs written with that language would then run >on the new computer. One person responding to my own earlier post stated >that this is possible with Python. > The normal "no-install" packaging scheme, from what I've seen, work by packaging all the modules/libraries (including the core interpreter) with the program files -- making an "executable" that operates by unpacking everything into a temporary directory, running the provided source files, and then deleting (I think) the temporary directory when done. If you expect people to do ad hoc programs, they'll need a more standard install on the target machine, with the interpreter exposed. Besides numpy, et al... If doing statistical stuff, there is rPy -- a module for driving the R statistics package from Python. > There are not too many programming languages that can do all of those >things. Perl and probably Fortran will. But we could not get simple >questions answered regarding how to do specific things such as open a "pipe" >to a running Windows program. And there are two versions of Fortran, >gfortran and F95 that we looked at. And we could not decided which one >would work better. "F95", to most of the world, specifies the level of the language standard (a tweaked variant of F90). gfortran is an implementation in the GCC system supporting F95 along with F2003 and F2008 updates to the standard. For the most part, in such languages (including souped up Pascal, Ada, C), operations like IPC (interprocess communication -- "pipes" are just one form of such, biased on the UNIX/Linux concept that everything works as a stream filter [input on stdin, manipulate it, send output to stdout, and linking stdout to the stdin of the next program]; on the old VMS OS one would use "mailboxes" and on the Amiga "message ports")... Operations like IPC are OS level features and one has to code for the OS (ie, non-portable). The Python subprocess module is one such OS-specific bit of code -- someone (the Python developers) defined an API for use on all supported OS, and then had to write OS specific parts to perform the function. Even with the one API, there are subtle differences between OS. Windows doesn't do "fork" so each subprocess goes through the full Windows process creation overhead. What are stand-alone executable utilities in UNIX/Linux may be built-in to a Windows command line interpreter -- so on Windows one has to have a subprocess "with shell" for those. -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/