<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: brett-cannon</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/brett-cannon.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-11-22T08:02:53+00:00</updated><author><name>Simon Willison</name></author><entry><title>Quoting Brett Cannon</title><link href="https://simonwillison.net/2024/Nov/22/brett-cannon/#atom-tag" rel="alternate"/><published>2024-11-22T08:02:53+00:00</published><updated>2024-11-22T08:02:53+00:00</updated><id>https://simonwillison.net/2024/Nov/22/brett-cannon/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://bsky.app/profile/snarky.ca/post/3lbid7l27722p"&gt;&lt;p&gt;It's okay to complain and vent, I just ask you be able to back it up. Saying, "Python packaging sucks", but then admit you actually haven't used it in so long you don't remember why it sucked isn't fair. Things do improve, so it's better to say "it did suck" and acknowledge you might be out-of-date.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://bsky.app/profile/snarky.ca/post/3lbid7l27722p"&gt;Brett Cannon&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/packaging"&gt;packaging&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brett-cannon"&gt;brett-cannon&lt;/a&gt;&lt;/p&gt;



</summary><category term="packaging"/><category term="python"/><category term="brett-cannon"/></entry><entry><title>Unravelling `not` in Python</title><link href="https://simonwillison.net/2020/Nov/27/unravelling-not-python/#atom-tag" rel="alternate"/><published>2020-11-27T17:59:28+00:00</published><updated>2020-11-27T17:59:28+00:00</updated><id>https://simonwillison.net/2020/Nov/27/unravelling-not-python/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://snarky.ca/unravelling-not-in-python/"&gt;Unravelling `not` in Python&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Part of a series where Brett Cannon looks at how fundamental Python syntactic sugar works, including a clearly explained dive into the underlying op codes and C implementation.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://django-news.com/issues/51"&gt;Django News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/c"&gt;c&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brett-cannon"&gt;brett-cannon&lt;/a&gt;&lt;/p&gt;



</summary><category term="c"/><category term="python"/><category term="brett-cannon"/></entry><entry><title>Why you should use `python -m pip`</title><link href="https://simonwillison.net/2019/Nov/2/python-m-pip/#atom-tag" rel="alternate"/><published>2019-11-02T16:41:34+00:00</published><updated>2019-11-02T16:41:34+00:00</updated><id>https://simonwillison.net/2019/Nov/2/python-m-pip/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://snarky.ca/why-you-should-use-python-m-pip/"&gt;Why you should use `python -m pip`&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Brett Cannon explains why he prefers “python -m pip install...” to “pip install...”—it ensures you always know exactly which Python interpreter environment you are installing packages for. He also makes the case for always installing into a virtual environment, created using “python -m venv”.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/brettsky/status/1190432543964712960"&gt;@brettsky&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/packaging"&gt;packaging&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brett-cannon"&gt;brett-cannon&lt;/a&gt;&lt;/p&gt;



</summary><category term="packaging"/><category term="python"/><category term="brett-cannon"/></entry></feed>