<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Raymond P. Burkholder - Things I Do - Python</title>
    <link>https://blog.raymond.burkholder.net/</link>
    <description>In And Around Technology and The Arts</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.7.2 - http://www.s9y.org/</generator>
    <pubDate>Mon, 16 Mar 2026 02:58:05 GMT</pubDate>

    <image>
        <url>https://blog.raymond.burkholder.net/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: Raymond P. Burkholder - Things I Do - Python - In And Around Technology and The Arts</title>
        <link>https://blog.raymond.burkholder.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Python Virtual Environment for Ansible</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/1337-Python-Virtual-Environment-for-Ansible.html</link>
            <category>Ansible</category>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/1337-Python-Virtual-Environment-for-Ansible.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=1337</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=1337</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;https://codesolid.com/pip-vs-pipenv-which-is-better-and-which-to-learn-first/&quot; target=_blank&gt;Pip vs Pipenv: Which is better and which to learn first&lt;/a&gt; compares &lt;a href=&quot;https://packages.debian.org/trixie/pipenv&quot; target=_blank&gt;pipenv&lt;/a&gt; vs the &lt;a href=&quot;https://packages.debian.org/trixie/python3-pip&quot; target=_blank&gt;python3-pip&lt;/a&gt; and &lt;a href=&quot;https://packages.debian.org/trixie/virtualenv&quot; target=_blank&gt;virtualenv&lt;/a&gt; package combo.

&lt;p&gt;After referring to that, I think I&#039;ll just stick with the standard pip/virtualenv combo for now.

&lt;p&gt;To get started:

&lt;blockquote&gt;&lt;pre&gt;
# install basic packages
apt-get install python3 python3-pip virtualenv  python3-venv git

# create a project directory - example ansible
python3 -m venv ansible

# activate the project
cd ansible
source bin/activate

# example installation of packages
pip install ansible
pip install argcomplete
activate-global-python-argcomplete
source ~/.bash_completion
ansible-config init --disabled &gt; ansible.cfg

# to deactivate the project
deactivate

# upgrade
python3 -m pip install --upgrade ansible
&lt;/pre&gt;&lt;/blockquote&gt;

&lt;p&gt;At some point, integrate &lt;a href=&quot;https://packages.debian.org/trixie/python3-ansible-runner&quot; target=_blank&gt;python3-ansible-runner&lt;/a&gt;, the &lt;a href=&quot;https://github.com/ansible/ansible-runner&quot; target=_blank&gt;github source&lt;/a&gt; and links to documentation. 
    </content:encoded>

    <pubDate>Sat, 28 Feb 2026 19:27:47 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/1337-guid.html</guid>
    
</item>
<item>
    <title>SaltStack on Debian Bookworm</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/1241-SaltStack-on-Debian-Bookworm.html</link>
            <category>Debian</category>
            <category>Python</category>
            <category>Salt</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/1241-SaltStack-on-Debian-Bookworm.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=1241</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=1241</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;I found out the hard way that SaltStack and Debian no longer place nice together.  I had upgraded a Debian installation from Bullseye to Bookworm, along with the resident Salt Minion.  When attempting to use the minion, it no longer starts up, due to various imports no longer working.  Which was due to the salt-minion not being upgraded.  The error message would started this odyssey:

&lt;blockquote&gt;&lt;pre&gt;
salt ImportError: cannot import name &#039;Markup&#039; from &#039;jinja2&#039;
&lt;/pre&gt;&lt;/blockquote&gt;

&lt;p&gt;Taking a look at the &lt;a href=&quot;https://tracker.debian.org/pkg/salt&quot; target=_blank&gt;Debian Developer Information for Salt&lt;/a&gt;, the last version started in &#039;unstable&#039; was 3004.1 back in December of 2022.  This is now almost 8 months later and little or no movement.  There was some mention in a ticket somewhere that Salt release cycles don&#039;t cater to Debian stable release cycles.  Not sure if that is a legitimate reason or not, but, well, for whatever reason, SaltStack management in Debian is no longer a simple no brainer.

&lt;p&gt;However, after a little digging, there is a way to run SaltStack versions 3006 (current as of this writing).  It is simple to install on Bullseye, but not easily done on Bookworm.

&lt;p&gt;On Bullseye (as root, or implies sudo):

&lt;blockquote&gt;
# cd ~
# apt remove salt-minion salt-master
# apt install curl
# curl -L https://bootstrap.saltstack.com -o install_salt.sh
# sh install_salt.sh -M onedir
&lt;/blockquote&gt;

&lt;p&gt;The &#039;-M&#039; installs the salt master at the same time (for machines running master).  If you forget to do that, you&#039;ll need to diagnose and fix the systemctl mask error with the following:

&lt;blockquote&gt;
# apt install file
# file /etc/systemd/system/salt-master.service
# rm /etc/systemd/system/salt-master.service
# systemctl daemon-reload
# sh install_salt.sh -M onedir
&lt;/blockquote&gt;

&lt;p&gt;The &#039;sh install_salt.sh -M onedir&#039; should show a symlink to /dev/nul, which the &#039;rm ...&#039; will fix.

&lt;p&gt;On Bookworm, the bootstrap isn&#039;t scheduled to work till beginning of 2024 sometime I think with Salt 3007 or 3008 -- more info in &lt;a href=&quot;https://github.com/saltstack/salt/issues/64223&quot; target=_blank&gt;[FEATURE REQUEST] Add Salt support for Debian 12 #64223 &lt;/a&gt;.

&lt;p&gt;In the meantime, I had to cheat a bit:

&lt;ul&gt;
  &lt;li&gt;in /etc/debian_version, change 12.0 to 11.0
  &lt;li&gt;in /etc/apt/sources.list, change bookworm to bullseye
  &lt;li&gt;rm /etc/apt/sources.list.d/salt.list
  &lt;li&gt;run apt update
  &lt;li&gt;run the commands listed above for installing the one or both the salt services
  &lt;li&gt;restore /etc/debian_version and /etc/apt/sources.list to their original content
  &lt;/ul&gt;

&lt;p&gt;I&#039;m sure there are more elegant ways of doing this, but this worked to fake the needed version 11 in the installation script and directory traversal requirements

&lt;p&gt;Note, more info on the &lt;a href=&quot;https://docs.saltproject.io/en/getstarted/fundamentals/install.html&quot; target=_blank&gt;Salt Install/Bootstrap Process&lt;/a&gt;.
 
    </content:encoded>

    <pubDate>Wed, 19 Jul 2023 01:09:49 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/1241-guid.html</guid>
    
</item>
<item>
    <title>Django Training / Tutorials</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/847-Django-Training-Tutorials.html</link>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/847-Django-Training-Tutorials.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=847</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=847</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;My browser is getting littered with Django references.  Time to collect them together:

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.codementor.io/rogargon/simple-django-web-application-tutorial-du107rmn4&quot; target=_blank&gt;Simple Django Web Application Tutorial&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.onespacemedia.com/news/2014/feb/5/getting-started-generic-class-based-views-django/&quot; target=_blank&gt;Getting started with Generic Class Based Views in Django&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=15647232&quot; target=_blank&gt;Ask HN: Best resources to learn django in 2017?&lt;/a&gt;
  &lt;/ul&gt; 
    </content:encoded>

    <pubDate>Tue, 31 Oct 2017 15:58:52 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/847-guid.html</guid>
    
</item>
<item>
    <title>Python Networking</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/755-Python-Networking.html</link>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/755-Python-Networking.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=755</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=755</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;Routing
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/svinota/pyroute2&quot; target=_blank&gt;pyroute2&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;https://networkx.github.io/&quot; target=_blank&gt;NetworkX&lt;/a&gt;

  &lt;/ul&gt;

&lt;p&gt;Mininet
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Ehsan70/RyuApps&quot; target=_blank&gt;Ehsan70 RyuApps&lt;/a&gt;
  &lt;/ul&gt;

&lt;p&gt;Ryu
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/osrg/ryu&quot; target=_blank&gt;osrg/ryu&lt;/a&gt; on github
  &lt;li&gt;&lt;a href=&quot;https://sdn-lab.com/2014/12/31/topology-discovery-with-ryu/&quot; target=_blank&gt;SDN Lab&lt;/a&gt; topology discovery with Ryu
  &lt;li&gt;&lt;a href=&quot;http://ryu.readthedocs.io/en/latest/ryu_app_api.html&quot; target=_blank&gt;Ryu ReadTheDocs&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;https://osrg.github.io/ryu-book/en/html/index.html&quot; target=_blank&gt;Ryu Book&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;http://nullege.com/codes/search/ryu.controller.controller.Datapath&quot; target=_blank&gt;Sample Code&lt;/a&gt;
  &lt;/ul&gt;

&lt;p&gt;Web applications

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://wagtail.io&quot; target=_blank&gt;clean simple cms&lt;/a&gt;: said by some to be all the rage
  &lt;li&gt;&lt;a href=&quot;http://www.tornadoweb.org/en/stable/&quot; target=_blank&gt;Tornado&lt;/a&gt; is a Python web framework and asynchronous networking library 
  &lt;li&gt;&lt;a href=&quot;https://www.django-cms.org/en/&quot; target=_blank&gt;django cms&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.revsys.com/blog/2015/apr/29/wagtail-best-django-cms/&quot; target=_blank&gt;RevSys talks Wagtail&lt;/a&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.celeryproject.org&quot; target=_blank&gt;Celery&lt;/a&gt;: Distributed Task Queue
  &lt;li&gt;&lt;a href=&quot;http://mezzanine.jupo.org&quot; target=_blank&gt;Mezzanine&lt;/a&gt;: content management platform built using the django framework &lt;a href=&quot;https://www.quora.com/What-are-the-main-differences-between-Mezzanine-and-Django-CMS&quot; target=_blank&gt;quota: Mezzanine vs django &lt;/a&gt;
 &lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=14690638&quot; target=_blank&gt;Flask vs Django&lt;/a&gt;
  &lt;/ul&gt; 
    </content:encoded>

    <pubDate>Tue, 09 May 2017 18:46:24 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/755-guid.html</guid>
    
</item>
<item>
    <title>IDE For Python</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/605-IDE-For-Python.html</link>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/605-IDE-For-Python.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=605</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=605</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;There appears to be any number of &lt;a href=&quot;http://pythoncentral.org/comparison-of-python-ides-development/&quot; target=_blank&gt;Integrated Development Environments&lt;/a&gt;, and &lt;a href=&quot;https://wiki.python.org/moin/IntegratedDevelopmentEnvironments&quot; target=_blank&gt;here&lt;/a&gt; for Python.  I needed to select one for my own development.  

&lt;p&gt;I&#039;ve been using NetBeans for my C++ development cycles, and therefore wanted to use the same environment for Python.  No such luck.  Support for a Python add-in has been discontinued.  Not sure why.

&lt;p&gt;There were lots of good comments for the commercially supported environments, but I ended up looking for something in the &#039;free&#039; range.  A quick review showed that Eclipse supports a Python add-in called &lt;a href=&quot;http://pydev.org/&quot; target=_blank&gt;PyDev&lt;/a&gt;.  I installed it without the LiClipse bundle.  After giving Eclipse/PyDev a try for a few days, it appears to handle the job quite nicely.  

&lt;p&gt;My only issue at the moment is that the IDE doesn&#039;t seem to be able to load all necessary libraries and parse them properly for error free syntax checking.  Even though the modules appear to build and run properly.  Perhaps I have not properly configured the environment.   The one special thing that I&#039;ve done is create a custom run configuration in order to make use of the virtualenv environment for each of my projects. 
    </content:encoded>

    <pubDate>Thu, 21 Aug 2014 15:44:06 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/605-guid.html</guid>
    
</item>
<item>
    <title>Python Notes</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/603-Python-Notes.html</link>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/603-Python-Notes.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=603</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=603</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;easter egg:  python -c &quot;import this&quot;

&lt;p&gt;pypy offers code speed up

&lt;p&gt;pickle:  simple object persistence

&lt;p&gt;pillow: image processing

&lt;p&gt;pyro: distributed processing

&lt;p&gt;Unix env Lookup Trick:  on some systems, the path to the python interpreter can be indirected via the environment variable (Learning Python 5e, page 60)

&lt;blockquote&gt;
#!/usr/bin/env python
&lt;br /&gt;........
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Mon, 18 Aug 2014 00:50:22 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/603-guid.html</guid>
    
</item>
<item>
    <title>Python Virtual Environment</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/600-Python-Virtual-Environment.html</link>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/600-Python-Virtual-Environment.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=600</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=600</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;Python has two separate common versions happening:  2.7 and 3.somethingorother.  There are language differences between the two.  And since both versions are active, both versions have to be supported, and the libraries for each, due to language differences between versions, have to be managed separately.

&lt;p&gt;To do this, something called &lt;a href=&quot;http://virtualenv.readthedocs.org/en/latest/virtualenv.html&quot; target=_blank&gt;virtualenv&lt;/a&gt; was created.  The short form of getting things functioning:

&lt;blockquote&gt;&lt;pre&gt;
[sudo] pip install virtualenv  # installs the package
mkdir &lt;projectname&gt;      # create a directory for the project
cd &lt;projectname&gt;         # get settled into the directory
virtualenv env       # creates a project local environment for libraries (first part of the the magic trick)
. env/bin/activate   # use each time when starting project work (second part of magic trick, fixing path)
deactivate   # use when ready to undo the path fix
&lt;/pre&gt;&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Wed, 06 Aug 2014 17:40:21 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/600-guid.html</guid>
    
</item>
<item>
    <title>Statistical Books For Programmers</title>
    <link>https://blog.raymond.burkholder.net/index.php?/archives/595-Statistical-Books-For-Programmers.html</link>
            <category>Python</category>
    
    <comments>https://blog.raymond.burkholder.net/index.php?/archives/595-Statistical-Books-For-Programmers.html#comments</comments>
    <wfw:comment>https://blog.raymond.burkholder.net/wfwcomment.php?cid=595</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://blog.raymond.burkholder.net/rss.php?version=2.0&amp;type=comments&amp;cid=595</wfw:commentRss>
    

    <author>nospam@example.com (Raymond P. Burkholder)</author>
    <content:encoded>
    &lt;p&gt;When researching the Augmented Dickey Fuller test, 

&lt;iframe class=&quot;serendipity_image_right&quot; style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;https://blog.raymond.burkholder.net//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=oneunified-20&amp;marketplace=amazon&amp;region=US&amp;placement=1449370780&amp;asins=1449370780&amp;linkId=WXL454Y67ZNRH37V&amp;show_border=true&amp;link_opens_in_new_window=false&quot;&gt;
&lt;/iframe&gt;

&lt;iframe class=&quot;serendipity_image_right&quot; style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;https://blog.raymond.burkholder.net//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=oneunified-20&amp;marketplace=amazon&amp;region=US&amp;placement=1491907339&amp;asins=1491907339&amp;linkId=KBCISHXRDUL2BSGS&amp;show_border=true&amp;link_opens_in_new_window=false&quot;&gt;
&lt;/iframe&gt;


I came across two books that would be good for programmers.  They use Python as a reference language, but hey, at least they take the programmer&#039;s point of view.  Converting to C++ as needed shouldn&#039;t be too difficult.  &#039;Think Stats&#039;, which is coming out in Edition 2, and &#039;Think Bayes&#039;, which builds on the &#039;Think Stats&#039; book.

 
    </content:encoded>

    <pubDate>Sun, 03 Aug 2014 00:11:38 +0000</pubDate>
    <guid isPermaLink="false">https://blog.raymond.burkholder.net/index.php?/archives/595-guid.html</guid>
    
</item>

</channel>
</rss>
