← 返回首页
add a few web dev and app dependency resources · pythonthings/fullstackpython.com@c696fe9 · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

Commit c696fe9

Browse files
committed
add a few web dev and app dependency resources
1 parent 9a57e3c commit c696fe9

3 files changed

Lines changed: 38 additions & 17 deletions

File tree

‎content/pages/02-development-environments/15-application-dependencies.markdown‎

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ installation so applications are easier for developers to create.
2222

2323
## Finding libraries
2424
Python libraries are stored in a central location known as the
25-
[Python Package Index](https://pypi.python.org/pypi) (PyPi). PyPi contains
25+
[Python Package Index](https://pypi.org/). PyPi contains
2626
search functionality with results weighted by usage and relevance based on
2727
keyword terms.
2828

@@ -121,6 +121,10 @@ further clarification.
121121

122122

123123
### Application dependency resources
124+
The following links provide advice on how to use Python packages as well
125+
as package your own dependencies for projects or consumption by other
126+
developers.
127+
124128
* [Python Packaging Is Good Now](https://glyph.twistedmatrix.com/2016/08/python-packaging.html)
125129
is a wonderfully written blog post. It provides historical context on why
126130
Python's code library packaging was painful for a long time, and what's
@@ -135,19 +139,17 @@ further clarification.
135139
is an amazing post that takes the reader from simple Python script
136140
into a complete Python package.
137141

138-
* [Jon Chu](https://twitter.com/jonathanchu) wrote a great introduction on
139-
[virtualenv and pip basics](http://jonathanchu.is/posts/virtualenv-and-pip-basics/).
140-
141142
* [A non-magical introduction to virtualenv and pip](http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python/)
142143
breaks down what problems these tools solve and how to use them.
143144

145+
* [There’s no magic: virtualenv edition](https://www.recurse.com/blog/14-there-is-no-magic-virtualenv-edition)
146+
breaks open the virtual environment "black box" to show you what the
147+
tool is doing when you use its commands.
148+
144149
* [Testing & Packaging](https://hynek.me/articles/testing-packaging/) examines
145150
a configuration for ensuring tests run against your code and how to
146151
properly package your project.
147152

148-
* [Tools of the modern Python hacker](http://www.clemesha.org/blog/modern-python-hacker-tools-virtualenv-fabric-pip/)
149-
contains detailed explanations of virtualenv, Fabric, and pip.
150-
151153
* Occasionally arguments about using Python's dependency manager versus
152154
one of Linux's dependency managers comes up. This provides
153155
[one perspective on that debate](http://notes.pault.ag/debian-python/).
@@ -158,16 +160,6 @@ further clarification.
158160
[left-pad NPM situation](https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c)
159161
that broke many dependent packages in the Node.js community.
160162

161-
* This Stack Overflow question details how to set up a
162-
[virtual environment for Python development](http://askubuntu.com/questions/244641/how-to-set-up-and-use-a-virtual-python-environment-in-ubuntu).
163-
164-
* Another Stack Overflow page answers
165-
[how to set environment variables when using virtualenv](http://stackoverflow.com/questions/9554087/setting-an-environment-variable-in-virtualenv).
166-
167-
* [Tips for using pip + virtualenv + virtualenvwrapper](http://mrcoles.com/tips-using-pip-virtualenv-virtualenvwrapper/)
168-
shows how to use shell aliases and postactivate virtualenvwrapper hooks to
169-
make life easier when using these tools.
170-
171163
* Major speed improvements were made in pip 7 over previous versions. Read
172164
[this article about the differences](https://lincolnloop.com/blog/fast-immutable-python-deployments/)
173165
and be sure to upgrade.
@@ -184,14 +176,33 @@ further clarification.
184176
and how to get around them until they are smoothed out by updates to the
185177
tools.
186178

179+
* [The Many Layers of Packaging](https://sedimental.org/the_packaging_gradient.html)
180+
goes up and down the packaging stack and even covers bits about virtual
181+
environments and security. It's well worth investing some time to read
182+
this post to get an overview of the many layers involved in dependency
183+
packaging.
184+
185+
* [How to Publish Your Package on PyPI](https://blog.jetbrains.com/pycharm/2017/05/how-to-publish-your-package-on-pypi/)
186+
is for developers who have created a code library they would like to
187+
share and make installable for other developers.
188+
187189

188190
### Open source app dependency projects
191+
[pip and venv](https://docs.python.org/3/library/venv.html) are part of
192+
Python 3's standard library as of version 3.3. However, there are numerous
193+
other open source libraries that can be helpful when managing application
194+
dependencies in your projects, as listed below.
195+
189196
* [Autoenv](https://github.com/kennethreitz/autoenv) is a tool for activating
190197
environment variables stored in a `.env` file in your projects' home
191198
directories. Environment variables aren't managed by virtualenv and although
192199
virtualenvwrapper has some hooks for handling them, it's often easiest to
193200
use a shell script or `.env` file to set them in a development environment.
194201

202+
* [Pipenv](https://pipenv.readthedocs.io/en/latest/) is a newer Python
203+
packaging and dependency management library that has seen some adoption
204+
in place of the standard `pip` library.
205+
195206
* [Pipreqs](https://github.com/bndr/pipreqs) searches through a project for
196207
dependencies based on imports. It then generates a `requirements.txt` file
197208
based on the libraries necessary to run those dependencies. Note though that

‎content/pages/04-web-development/00-web-development.markdown‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ many other topics. The following resources provide a range of perspectives
4848
and when combined together should get you oriented in the web development
4949
world.
5050

51+
* [How the Internet works](https://thesquareplanet.com/blog/how-the-internet-works/)
52+
is a must-read to get a quick overview of all the pieces that go into
53+
a network connection from one machine to another. The example explains how
54+
an email is sent and the story is just as useful for learning about other
55+
connections such as downloading a webpage.
56+
5157
* If you want to be a web developer it's important to know the foundational
5258
tools used to build websites and web applications. It is also important to
5359
understand that the core concepts such as
@@ -124,6 +130,10 @@ world.
124130
from disparate locations to see what the network speed is in fiber optic
125131
cables as a percentage of the speed of light.
126132

133+
* [The critical path: optimizing load times with the Chrome DevTools](https://www.lucidchart.com/techblog/2018/03/13/the-critical-path-optimizing-load-times-with-the-chromedev-tools/)
134+
provides a well-written explanation about using Chrome's developer
135+
features to improve the performance of your websites and web applications.
136+
127137
* [Three takeaways for web developers after two weeks of painfully slow Internet](https://medium.com/@zengabor/three-takeaways-for-web-developers-after-two-weeks-of-painfully-slow-internet-9e7f6d47726e)
128138
is a must-read for every web developer. Not everyone has fast Internet
129139
service, whether because they are in a remote part of the world or they're
116 KB
LoadingViewer requires iframe.

0 commit comments

Comments
 (0)

Footer

© 2026 GitHub, Inc.