Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
21fd5a92
Commit
21fd5a92
authored
9 years ago
by
Andrew Kuchling
Browse files
Options
Browse Files
Download
Plain Diff
Merge from 3.4
parents
20f628ee
dd15b36c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
198 additions
and
0 deletions
+198
-0
Doc/tutorial/index.rst
Doc/tutorial/index.rst
+1
-0
Doc/tutorial/venv.rst
Doc/tutorial/venv.rst
+197
-0
No files found.
Doc/tutorial/index.rst
View file @
21fd5a92
...
@@ -53,6 +53,7 @@ The :ref:`glossary` is also worth going through.
...
@@ -53,6 +53,7 @@ The :ref:`glossary` is also worth going through.
classes.rst
classes.rst
stdlib.rst
stdlib.rst
stdlib2.rst
stdlib2.rst
venv.rst
whatnow.rst
whatnow.rst
interactive.rst
interactive.rst
floatingpoint.rst
floatingpoint.rst
...
...
This diff is collapsed.
Click to expand it.
Doc/tutorial/venv.rst
0 → 100644
View file @
21fd5a92
..
_tut
-
venv
:
*********************************
Virtual
Environments
and
Packages
*********************************
Introduction
============
Python
applications
will
often
use
packages
and
modules
that
don
't
come as part of the standard library. Applications will sometimes
need a specific version of a library, because the application may
require that a particular bug has been fixed or the application may be
written using an obsolete version of the library'
s
interface
.
This
means
it
may
not
be
possible
for
one
Python
installation
to
meet
the
requirements
of
every
application
.
If
application
A
needs
version
1.0
of
a
particular
module
but
application
B
needs
version
2.0
,
then
the
requirements
are
in
conflict
and
installing
either
version
1.0
or
2.0
will
leave
one
application
unable
to
run
.
The
solution
for
this
problem
is
to
create
a
:
term
:`
virtual
environment
`
(
often
shortened
to
"virtualenv"
),
a
self
-
contained
directory
tree
that
contains
a
Python
installation
for
a
particular
version
of
Python
,
plus
a
number
of
additional
packages
.
Different
applications
can
then
use
different
virtual
environments
.
To
resolve
the
earlier
example
of
conflicting
requirements
,
application
A
can
have
its
own
virtual
environment
with
version
1.0
installed
while
application
B
has
another
virtualenv
with
version
2.0
.
If
application
B
requires
a
library
be
upgraded
to
version
3.0
,
this
will
not
affect
application
A
's environment.
Creating Virtual Environments
=============================
The script used to create and manage virtual environments is called
:program:`pyvenv`. :program:`pyvenv` will usually install the most
recent version of Python that you have available; the script is also
installed with a version number, so if you have multiple versions of
Python on your system you can select a specific Python version by
running ``pyvenv-3.4`` or whichever version you want.
To create a virtualenv, decide upon a directory
where you want to place it and run :program:`pyvenv` with the
directory path::
pyvenv tutorial-env
This will create the ``tutorial-env`` directory if it doesn'
t
exist
,
and
also
create
directories
inside
it
containing
a
copy
of
the
Python
interpreter
,
the
standard
library
,
and
various
supporting
files
.
If
you
Once
you
've created a virtual environment, you need to
activate it.
On Windows, run::
tutorial-env/Scripts/activate
On Unix or MacOS, run::
source tutorial-env/bin/activate
(This script is written for the bash shell. If you use the
:program:`csh` or :program:`fish` shells, there are alternate
``activate.csh`` and ``activate.fish`` scripts you should use
instead.)
Activating the virtualenv will change your shell'
s
prompt
to
show
what
virtualenv
you
're using, and modify the environment so that running
``python`` will get you that particular version and installation of
Python. For example::
-> source ~/envs/tutorial-env/bin/activate
(tutorial-env) -> python
Python 3.4.3+ (3.4:c7b9645a6f35+, May 22 2015, 09:31:25)
...
>>> import sys
>>> sys.path
['', '
/
usr
/
local
/
lib
/
python34
.
zip
', ...,
'
~/
envs
/
tutorial
-
env
/
lib
/
python3
.4
/
site
-
packages
']
>>>
Managing Packages with pip
==========================
Once you'
ve
activated
a
virtual
environment
,
you
can
install
,
upgrade
,
and
remove
packages
using
a
program
called
:
program
:`
pip
`.
By
default
``
pip
``
will
install
packages
from
the
Python
Packaging
Index
,
<
https
://
pypi
.
python
.
org
/
pypi
>.
You
can
browse
the
Python
Packaging
Index
by
going
to
it
in
your
web
browser
,
or
you
can
use
``
pip
``
's
limited search feature::
(tutorial-env) -> pip search astronomy
skyfield - Elegant astronomy for Python
gary - Galactic astronomy and gravitational dynamics.
novas - The United States Naval Observatory NOVAS astronomy library
astroobs - Provides astronomy ephemeris to plan telescope observations
PyAstronomy - A collection of astronomy related tools for Python.
...
``pip`` has a number of subcommands: "search", "install", "uninstall",
"freeze", etc. (Consult the :ref:`installing-index` guide for
complete documentation for ``pip``.)
You can install the latest version of a package by specifying a package'
s
name
::
->
pip
install
novas
Collecting
novas
Downloading
novas
-
3.1.1.3
.
tar
.
gz
(
136
kB
)
Installing
collected
packages
:
novas
Running
setup
.
py
install
for
novas
Successfully
installed
novas
-
3.1.1.3
You
can
also
install
a
specific
version
of
a
package
by
giving
the
package
name
followed
by
``==``
and
the
version
number
::
->
pip
install
requests
==
2.6.0
Collecting
requests
==
2.6.0
Using
cached
requests
-
2.6.0
-
py2
.
py3
-
none
-
any
.
whl
Installing
collected
packages
:
requests
Successfully
installed
requests
-
2.6.0
If
you
re
-
run
this
command
,
``
pip
``
will
notice
that
the
requested
version
is
already
installed
and
do
nothing
.
You
can
supply
a
different
version
number
to
get
that
version
,
or
you
can
run
``
pip
install
--
upgrade
``
to
upgrade
the
package
to
the
latest
version
::
->
pip
install
--
upgrade
requests
Collecting
requests
Installing
collected
packages
:
requests
Found
existing
installation
:
requests
2.6.0
Uninstalling
requests
-
2.6.0
:
Successfully
uninstalled
requests
-
2.6.0
Successfully
installed
requests
-
2.7.0
``
pip
uninstall
``
followed
by
one
or
more
package
names
will
remove
the
packages
from
the
virtual
environment
.
``
pip
show
``
will
display
information
about
a
particular
package
::
(
tutorial
-
env
)
->
pip
show
requests
---
Metadata
-
Version
:
2.0
Name
:
requests
Version
:
2.7.0
Summary
:
Python
HTTP
for
Humans
.
Home
-
page
:
http
://
python
-
requests
.
org
Author
:
Kenneth
Reitz
Author
-
email
:
me
@
kennethreitz
.
com
License
:
Apache
2.0
Location
:
/
Users
/
akuchling
/
envs
/
tutorial
-
env
/
lib
/
python3
.4
/
site
-
packages
Requires
:
``
pip
list
``
will
display
all
of
the
packages
installed
in
the
virtual
environment
::
(
tutorial
-
env
)
->
pip
list
novas
(
3.1.1.3
)
numpy
(
1.9.2
)
pip
(
7.0.3
)
requests
(
2.7.0
)
setuptools
(
16.0
)
``
pip
freeze
``
will
produce
a
similar
list
of
the
installed
packages
,
but
the
output
uses
the
format
that
``
pip
install
``
expects
.
A
common
convention
is
to
put
this
list
in
a
``
requirements
.
txt
``
file
::
(
tutorial
-
env
)
->
pip
freeze
>
requirements
.
txt
(
tutorial
-
env
)
->
cat
requirements
.
txt
novas
==
3.1.1.3
numpy
==
1.9.2
requests
==
2.7.0
The
``
requirements
.
txt
``
can
then
be
committed
to
version
control
and
shipped
as
part
of
an
application
.
Users
can
then
install
all
the
necessary
packages
with
``
install
-
r
``::
->
pip
install
-
r
requirements
.
txt
Collecting
novas
==
3.1.1.3
(
from
-
r
requirements
.
txt
(
line
1
))
...
Collecting
numpy
==
1.9.2
(
from
-
r
requirements
.
txt
(
line
2
))
...
Collecting
requests
==
2.7.0
(
from
-
r
requirements
.
txt
(
line
3
))
...
Installing
collected
packages
:
novas
,
numpy
,
requests
Running
setup
.
py
install
for
novas
Successfully
installed
novas
-
3.1.1.3
numpy
-
1.9.2
requests
-
2.7.0
``
pip
``
has
many
more
options
.
Consult
the
:
ref
:`
installing
-
index
`
guide
for
complete
documentation
for
``
pip
``.
When
you
've written
a package and want to make it available on the Python Packaging Index,
consult the :ref:`distributing-index` guide.
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment