“Does Python have language features that help construct well-defined APIs?”
“Python has language features that help you construct well-defined APIs with clear interface boundaries.”
“Has the Python community established best practices?”
“The Python community has established best practices to maximize the maintainability of code over time.”
“Do standard tools enable large teams to work together?”
“Some standard tools that ship with Python enable large teams to work together across disparate environments.”
“Does collaborating require being deliberate about code?”
“Collaborating with others on Python programs requires being deliberate on how you write your code.”
“Will you likely use code written by someone else?”
“Even if you’re working on your own
“Why understand Python collaboration mechanisms?”
“It’s important to understand the mechanisms that make it easy to collaborate with other Python programmers.”
“Does Python have a central repository of modules?”
“Python has a central repository of modules (PyPI) that you can install and use in your programs.”
“Who builds and maintains PyPI modules?”
“These modules are built and maintained by people like you: the Python community.”
“When should you look to PyPI?”
“When you find yourself facing an unfamiliar situation
“What tool do you need for the Package Index?”
“To use the Package Index
“How should you run pip?”
“pip can be run with python3 -m pip to ensure that packages are installed for the correct version of Python on your system.”
“What tool is pip best used with?”
“pip is best used together with venv to consistently track sets of packages to install for your projects.”
“Can you create your own PyPI packages?”
“You can also create your own PyPI packages to share with the Python community.”
“Can you host private package repositories?”
“You can host your own private package repositories with pip.”
“Do PyPI modules have software licenses?”
“Each module in the PyPI has its own software license.”
“What licenses do most PyPI packages have?”
“Most of the packages (especially the popular ones) have free or open source licenses (see opensource.org for details).”
“Do licenses allow including modules in programs?”
“In most cases
“What to do when in doubt about licenses?”
“When in doubt
“What happens building larger programs?”
“Building larger and more complex programs often leads you to rely on various packages from the Python community.”
“What command-line tool installs packages?”
“You’ll find yourself running the python3 -m pip command-line tool to install packages like pytz
“Where does pip install packages by default?”
“The problem is that
“What does global installation cause?”
“That causes all Python programs on your system to be affected by these installed modules.”
“In theory
is this an issue?”
“What are transitive dependencies?”
“The trouble comes from transitive dependencies (the packages that the packages you install depend on).”