PageRenderTime 28ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/2012/python-for-windows.html

https://bitbucket.org/traeblain/sitebuild
HTML | 170 lines | 125 code | 21 blank | 24 comment | 0 complexity | cb9cfb304bb067c77ba3f12642ac3a18 MD5 | raw file
  1. <!DOCTYPE html>
  2. <!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
  3. <!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
  4. <!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
  5. <!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
  6. <head>
  7. <!-- Basic Page Needs
  8. ================================================== -->
  9. <meta charset="utf-8">
  10. <title>Python for Windows - Trae's Blog</title>
  11. <meta name="author" content="Trae Blain">
  12. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1" />
  13. <!-- Mobile Specific Metas
  14. ================================================== -->
  15. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  16. <!-- CSS
  17. ================================================== -->
  18. <link rel="stylesheet" href="//blog.traeblain.com/theme/css/fullstyle.min.css?2bfb2772"> <link rel="stylesheet" href="/theme/css/style.min.css?3dc27ec8">
  19. <!-- Fonts
  20. ================================================== -->
  21. <link href='https://fonts.googleapis.com/css?family=Raleway:400,300,600,900' rel='stylesheet' type='text/css'>
  22. <!--[if lt IE 9]>
  23. <script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  24. <![endif]-->
  25. <!-- Favicons
  26. ================================================== -->
  27. <link rel="shortcut icon" href="//blog.traeblain.com/theme/images/favicon.ico">
  28. <link rel="apple-touch-icon" href="//blog.traeblain.com/theme/images/apple-touch-icon.png">
  29. <link rel="apple-touch-icon" sizes="72x72" href="//blog.traeblain.com/theme/images/apple-touch-icon-72x72.png">
  30. <link rel="apple-touch-icon" sizes="114x114" href="//blog.traeblain.com/theme/images/apple-touch-icon-114x114.png">
  31. <link href="//blog.traeblain.com/" type="application/atom+xml" rel="alternate" title="Trae's Blog ATOM Feed" />
  32. <script type="text/javascript">
  33. </script>
  34. <script type="text/javascript">
  35. var analytics=analytics||[];analytics.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/"+e+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);var r=function(e){return function(){analytics.push([e].concat(Array.prototype.slice.call(arguments,0)))}},i=["identify","track","trackLink","trackForm","trackClick","trackSubmit","pageview","ab","alias"];for(var s=0;s<i.length;s++)analytics[i[s]]=r(i[s])};
  36. analytics.load("kylrycylld");
  37. </script></head>
  38. <body>
  39. <!-- Primary Page Layout
  40. ================================================== -->
  41. <div class="container grid">
  42. <header class="col-3-12 push-right header">
  43. <div class="col-3-12 headerwrap">
  44. <div class="header-content">
  45. <div class="header-avatar"><a class="avatar-link" href="//blog.traeblain.com"><img src="//blog.traeblain.com/theme/images/tblogo.svg" alt="TB" /></a></div>
  46. <hgroup class="header-text">
  47. <h2 class="header-name"><a class="home-link" href="http://traeblain.com/">Trae Blain</a></h2>
  48. <h3 class="header-title">Engineer. Father. Cyclist. Sexy. Sarcastic. Geek.</h3>
  49. </hgroup>
  50. <section class="header-social">
  51. <ul class="header-social-icons">
  52. <li class="twittericon"><a href="http://twitter.com/traeblain/" class="twitterlink"><i class="icon-twitter"></i></a></li>
  53. <li class="facebookicon"><a href="http://facebook.com/traeblain/" class="facebooklink"><i class="icon-facebook"></i></a></li>
  54. <li class="btbicon"><a href="http://breakingthebike.com/" class="btblink"><i class="icon-bicycle"></i></a></li>
  55. <li class="githubicon"><a href="http://github.com/traeblain/" class="githublink"><i class="icon-github"></i></a></li>
  56. <li class="rssicon"><a href="//blog.traeblain.com/feed" class="rsslink"><i class="icon-rss"></i></a></li>
  57. <li class="searchicon"><a href="//blog.traeblain.com/search" class="searchlink"><i class="icon-search"></i></a></li>
  58. </ul>
  59. <ul class="header-search">
  60. <li><form action="//blog.traeblain.com/search" method="get">
  61. <input class="search-form" type="text" name="q" /><button type="submit" class="search-button"><i class="icon-search"></i></button>
  62. </form></li>
  63. </ul>
  64. <ul class="header-social-button">
  65. <li class="twitterfollow"><a href="https://twitter.com/traeblain" class="twitter-follow-button" data-show-count="false">Follow @traeblain</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></li>
  66. </ul>
  67. </section>
  68. </div><!-- header-content -->
  69. </div><!-- headerwrap -->
  70. </header>
  71. <nav class="nav"><a class="homelink" href="//blog.traeblain.com" title="Home"><i class="icon-home"></i></a></nav>
  72. <section class="col-9-12 main" role="main">
  73. <article class="article post python-for-windows">
  74. <header class="article-header">
  75. <h1 class="article-title"><a href="" rel="bookmark" title="Permalink to Python for Windows" class="article-link">Python for Windows</a></h1>
  76. <time datetime="2012-11-19T15:02:00" class="article-date">November 19, 2012</time>
  77. </header>
  78. <ul class="article-tags">
  79. <li><a href="//blog.traeblain.com/tags/python"><span class="quo">&laquo;</span> python <span class="quo">&raquo;</span></a></li>
  80. <li><a href="//blog.traeblain.com/tags/tools"><span class="quo">&laquo;</span> tools <span class="quo">&raquo;</span></a></li>
  81. <li><a href="//blog.traeblain.com/tags/software"><span class="quo">&laquo;</span> software <span class="quo">&raquo;</span></a></li>
  82. </ul>
  83. <div class="article-body">
  84. <p>As you probably know if you follow my site, that I've become a pretty big Python fan. I feel that Python should be <a href="/2011/universities-and-mathematical-computation">pushed more at Universities</a> for mathematical computation, it can be used at a <a href="/2012/portable-nginx">wrapper for other programs</a>, and much more. The issue is (as it is with most programming languages) that Windows support is secondary and *nix support is held primary. But that doesn't mean you are totally out of the woods here. There actually is great support for Python in Windows, but most will need a little help. Never fear, that's what I'm here for.</p>
  85. <h3 id="pythonorg-windows-installer">Python.org Windows Installer</h3>
  86. <p><img alt="Python.org" src="/static/images/2012/pythonorg.png" title="Python.org alignleft" /></p>
  87. <p>This is a great start. You get <a href="http://python.org/download/">vanilla Python</a> in your install, and you can build from there. The problem is that you have to build from there with little or no help forward. Not necessarily a problem, but something to consider.</p>
  88. <p>Personally, I feel there are better packages out there. Read on...</p>
  89. <p><br class="clear" /></p>
  90. <h3 id="pythonxy">PythonXY</h3>
  91. <p><img alt="PythonXY" src="/static/images/2012/pythonxy.png" title="PythonXY alignleft" /></p>
  92. <p>This is my current package of choice (although I am investigating others further, so read on). <a href="http://code.google.com/p/pythonxy/">PythonXY</a> is a scientific and engineering package focused around numerical computations, data analysis, and data visualization. The key aspect to this tool is its focus to <a href="https://code.google.com/p/spyderlib/">Spyder</a>. The best way to describe Spyder is that it brings a <a href="http://www.mathworks.com/products/matlab/">MATLAB</a> like environment to the Python language.</p>
  93. <p>Since it is a Scientific/Engineering package, it comes with working Numpy and Scipy packages included. For those that don't know, getting these to compile on Windows is not trivial, and PythonXY takes care of it for you.</p>
  94. <h3 id="activestate-activepython">ActiveState: ActivePython</h3>
  95. <p><img alt="ActivePython" src="/static/images/2012/activepython.jpg" title="ActivePython alignleft" /></p>
  96. <p><a href="http://www.activestate.com/activepython">ActivePython</a> is actually primarily marketed to businesses. It contains its own package management system (PyPM), over the default system (PyPi). But they do have a CommunityEdition for free. ActivePython is a great starter distribution. It gets you off and started well, but you will find that the easy tools they provide also mean you will be one version behind everything. Part of their push to business gives you old versions for free and paid customers get the newest.</p>
  97. <h3 id="portablepython">PortablePython</h3>
  98. <p><img alt="PortablePython" src="/static/images/2012/portpy.jpg" title="PortablePython alignleft" /></p>
  99. <p>Finally I want to highlight <a href="http://portablepython.com/">PortablePython</a>. It is basically a package of python (with Numpy, Scipy, and more) put together to run on any machine off of a thumb drive. You don't need a thumbdrive, but it gives you a development environment on a portable device you can take to any computer. I like this one, because you can plug your thumbdrive in your computer, develop in the library/computer lab, or on a friends/work machine and always have the same environment. It takes more of a PC understanding to get it working well (but let's be serious here, you are not writing Python programs without some good computer knowledge). <a href="https://portablepython.uservoice.com/forums/44323-general/suggestions/2391762-add-spyder-ide-option">I wish it came with Spyder, though</a>.</p>
  100. <h3 id="anaconda-ce">Anaconda CE</h3>
  101. <p><img alt="Anaconda CE" src="/static/images/2012/continuum.jpg" title="Anaconda CE alignleft" /></p>
  102. <p><a href="https://store.continuum.io/cshop/anaconda">Anaconda</a> is another Python version primarily marketed at businesses for large data analysis. They too have an open-source Community Edition with all the open source tools pre-packaged, but they also include some of their home-grown tools in the free version as well. This one has been intriguing me for a while since it has a well structured 64-bit version. It is also built well to also run in a portable mode.</p>
  103. <p>I think this is definitely one to consider, although I do have some pause due to the business package which is the primary push.</p>
  104. <h3 id="others-to-consider">Others to Consider</h3>
  105. <p>I know there are a ton of other options out there, and each of the other options can be (for the most part) be achieve with the Python.org distribution. But these are the go-to options for Windows users to easily get their feet off the ground. But there are options like the following:</p>
  106. <h4 id="enthought-python-distribution">Enthought Python Distribution</h4>
  107. <p><img alt="Enthought Python Dist." src="/static/images/2012/enthought.jpg" title="Enthought Python Dist. alignleft" /></p>
  108. <p>Enthought is primarily "in-charge" of the Numpy and Scipy packages. But, there is really no package for free. <a href="http://www.enthought.com/products/epd.php">EPD</a> is a package you can use but you will need a license.</p>
  109. <p><br class="clear" /></p>
  110. <h4 id="winpython">WinPython</h4>
  111. <p><img alt="WinPython" src="/static/images/2012/winpython.png" title="WinPython alignleft" /></p>
  112. <p>This one sounds like a no-brainer right? <a href="http://code.google.com/p/winpython/">WinPython</a> has only been around since August so it has taken a back seat to PythonXY. It is actually being developed by the same person running PythonXY, and although claiming it is not to replace XY it is something new. Also looking into this one as a replacement for my PortablePython, and possibly a complete replacement. Something to think about.</p>
  113. </div>
  114. <div class="comments">
  115. <div id="disqus_thread"></div>
  116. <script type="text/javascript">
  117. var disqus_shortname = 'traeblain';
  118. (function() {
  119. var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
  120. dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
  121. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  122. })();
  123. </script>
  124. <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
  125. <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
  126. </div>
  127. </article>
  128. </section>
  129. <footer class="col-9-12 footer" role="footer">
  130. &copy; 2013 Trae Blain, All Rights Reserved. Built with <a href="http://getpelican.com/">Pelican</a>,
  131. <a href="//blog.traeblain.com/pretzels">Pretzels</a> and
  132. <a href="//blog.traeblain.com/mountaindew">Diet Mountain Dew</a>.
  133. </footer>
  134. </div><!-- container -->
  135. <!-- JS
  136. ================================================== -->
  137. <script>
  138. document.write('<script src=' +
  139. ('__proto__' in {} ? '//cdnjs.cloudflare.com/ajax/libs/zepto/1.0rc1/zepto.min' :
  140. '//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min') +
  141. '.js><\/script>')
  142. </script>
  143. <!-- <script src="//cdnjs.cloudflare.com/ajax/libs/zepto/1.0rc1/zepto.min.js"></script> -->
  144. <!-- <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> -->
  145. <script type="text/javascript" src="//blog.traeblain.com/theme/js/tmb.min.js?93f6db07"></script>
  146. <!-- End Document
  147. ================================================== -->
  148. </body>
  149. </html>