virtualenv
A tool for creating isolated virtual
python environments.
Code of Conduct
Everyone interacting in the virtualenv project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PSF Code of Conduct.
A tool for creating isolated virtual
python environments.
Everyone interacting in the virtualenv project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PSF Code of Conduct.
This Pull Request was previously #691 however I've moved the rewrite branch to pypa/virtualenv to make it more official.
This is a major change to the virtualenv code base, and as thus I want to get some sign off and opinions from the other @pypa/virtualenv-developers. I don't consider this idea a forgone conclusion without input from the other core developers.
This rewrites the entirety of virtualenv, this is a "dangerous" thing to do which risks breaking things that have been working and generally complete rewrites are considered a bad idea. However while attempting to fix errors like #694, #671, #666, #650, #672, #687, #674, #648, etc I ran into situation where I believe it's not feasible to fix all of the issues with virtualenv given the current methods it employs. In particular I believe that the way -p
is implemented makes it extremely fragile if not impossible to work accurately in all situations.
In particular I believe there are a number of issues, most of which stem from architectural issues with virtualenv itself. The (incomplete) list of issues are:
-p
functionality to restart the script, which is likely installed into one Python's site-packages
directory, seems to be fundamentally flawed in a way where it's not reasonable to fix it in all situations.virtualenv.py
module attempts to run as a single file, however it can't actually do that because it requires the virtualenv_support
directory to exist alongside it. I believe that it's saner and easier to have a single directory virtualenv/
directory which contains everything that needs to exist for an install to work. This also removes giant base64 encoded blobs from needing to be maintained inside of the virtualenv.py
file.site.py
that we maintain inside of virtualenv. However this site.py
misses features from later versions of Python which means that there are subtle differences in how Python behaves from within a virtual environment and without.In contrast the rewrite is structured in a different way.
In order to still support the -p
option without needing to implement the hackish "restart in target interpreter" logic, the rewrite instead (for the "legacy" isolation method) inspects the target environment for any values it needs. It does this by running a subprocess which will shove all of the required values into a dictionary, and then dump that as json. When the virtualenv script pulls these values out it then loads the json and then has all of the values it needs in order to construct the virtual environment without needing to execute itself with the target interpreter.
Given that newer versions of Python has built in isolation the rewrite wants to take advantage of that. It will detect if the target Python has the venv
module, and if they do it will execute a short script (via -c
) that will do the actual creation of the virtual environment (without any scripts or tools installed). This will also allow alternative implementations (like PyPy) to implement the isolation themselves so that they can ensure that isolation works correctly in their interpreter without needing to maintain a set of instructions inside of virtualenv for handling their interpreter.
The rewrite also attempts to start fresh with none of the additional hacks. This will mean that we'll likely be broken in certain situations and we'll need to determine how the old virtualenv solved that problem and reapply any additional hacks. However this time we can hopefully ensure that we document/comment what those hacks are and why we're doing it. We'll also ideally write a good set of tests for those hacks so that if we ever remove them in the future we'll have a test suite that will tell us if we broke anything by removing them. Another benefit is that since the hacks are (almost?) always related to the legacy isolation mechanism they can all be quarantined to the virtualenv.builders.legacy.LegacyBuilder
class instead of leaking all over the code base.
The new code base is also implemented in a much more modular way. Instead of a ball of spaghetti where the implementation of isolation is spread all over the place, the new code uses "Builder" classes which handle creating the actual environments. In addition (thanks to @ionelmc) it utilizes a "flavor" system which abstracts away the differences between Windows and Posix in the builder code.
In addition to the better (imo) layout of the code base, the new code base is also going to mandate that there is 100% unit test coverage at all times. This will help ensure that we continue to work through refactoring and the like in the future.
No matter which isolation method is in use, virtualenv itself will install it's own scripts and install it's own tools (pip and setuptools). This is so we can have consistent scripts and tool versions no matter which isolation mechanism is in play. It also makes it easier to get newer versions of the tooling and scripts without requiring people to update their entire Python interpreter. In other words if the venv isolation mechanism is available, we will only use it to create the isolated environment and nothing else.
The high level overview of what the major differences in capabilities are:
--relocatable
no longer is supported as it never worked very well and I don't believe it's possible to actually make it work in all cases. It appears the major use case for this is to avoid re-compiling software, for which I believe Wheels are a better solution.site.py
file in the rewrite allows us to copy a lot less files over than previously required. Almost the entire size of an empty virtual environment in the new rewrite is the executable files, which are required to be copied no matter what.--distribute
option is gone.--no-pip
and --no-setuptools
options now operate independently of each other. In addition there are now --setuptools
and --pip
options which will negate the --no-*
options if they were given previously.sys.real_prefix
we have sys.base_prefix
and sys.base_exec_prefix
in order to match what the venv module does.virtualenv-X.Y
entry points which didn't work correctly with Wheel anyways and are unneeded since it doesn't really matter what version of Python virtualenv is installed with.setup.py
and will always use the script wrappers in that situation.That major things left to do are:
There is an open question about how best to handle the transition. If we just merge this and release it then we risk regressing behavior for a lot of people since this is essentially brand new untested code. In the previous Pull Request @ncoghlan suggested releasing it on PyPI as something like virtualenv-rewrite for a period of time and asking people to switch to using that instead. I think that's a good idea and that's how I would plan the migration to go I think.
Summary of outstanding issues that get fixed/closed:
Summary of outstanding pull requests that get fixed/closed:
I am pretty sure that this fixes more issues and pull requests than I've listed here. However I don't feel like going through every single issue and determining which ones are still valid when they would require me to actually attempt to reproduce the issues instead of simply looking at the issue and determining if the new code can handle that situation.
I'm not really sure if this is a distribute/setuptools/virtualenv but,
If I install virtualenv in
/var/lib/hudson/home/jobs/Minification WebHelpers/workspace/python/2.4
then run ./bin/easy_install:
bash: ./bin/easy_install: "/var/lib/hudson/home/jobs/Minification: bad interpreter: No such file or directory
Seems like something does not obey whitespace in path names correctly.
python version: 3.6 (Intel Distribution for Python for Windows 2018 update 1) virtualenv version: 15.1.0 windows version: windows 10 pro, build 17101.rs4_release.180211-1040
I executed only 2 commands, here is what Powershell output:
PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy
This directory Python
is not where the python installed, it is only a normal directory.
I have tried installing some standalone openssl, like the one from here, but neither of them worked.
Hi all,
I'm including a brand new activation script for nushell. I think I've got the base structure but I was wondering if someone could help me set up some things.
activate.nu
file?# virtualenv /tmp/123
Overwriting /tmp/123/lib/python2.7/site.py with new content
New python executable in /tmp/123/bin/python
Installing setuptools, pip...
Complete output from command /tmp/123/bin/python -c "import sys, pip; pip...ll\"] + sys.argv[1:])" setuptools pip:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/pip-1.5-py2.py3-none-any.whl/pip/__init__.py", line 9, in <module>
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/pip-1.5-py2.py3-none-any.whl/pip/log.py", line 8, in <module>
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 2696, in <module>
def _dep_map(self):
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 429, in __init__
def get_resource_stream(manager, resource_name):
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 443, in add_entry
"""Is the named resource a directory? (like ``os.path.isdir()``)"""
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 1722, in find_in_zip
except AttributeError:
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 1298, in has_metadata
def test(nodelist):
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 1614, in _has
def _parts(self,zip_path):
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/pkg_resources.py", line 1488, in _zipinfo_name
"Can't perform this operation for loaders without 'get_data()'"
AssertionError: /usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/EGG-INFO/PKG-INFO is not a subpath of /usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv_support/setuptools-2.0.2-py2.py3-none-any.whl/
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 9, in <module>
load_entry_point('virtualenv==1.11', 'console_scripts', 'virtualenv')()
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv.py", line 820, in main
symlink=options.symlink)
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv.py", line 988, in create_environment
install_wheel(to_install, py_executable, search_dirs)
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv.py", line 956, in install_wheel
'PIP_NO_INDEX': '1'
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.11-py2.7.egg/virtualenv.py", line 898, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /tmp/123/bin/python -c "import sys, pip; pip...ll\"] + sys.argv[1:])" setuptools pip failed with error code 1
# python -V
Python 2.7.3
# pip freeze
Cheetah==2.4.4
GnuPGInterface==0.3.2
Jinja2==2.6
Landscape-Client==12.05
M2Crypto==0.21.1
MarkupSafe==0.15
PAM==0.4.2
PyYAML==3.10
SaltTesting==0.5.5
Twisted-Core==11.1.0
apache-libcloud==0.13.3
apt-xapian-index==0.44
argparse==1.2.1
boto==2.2.2
chardet==2.0.1
cloud-init==0.6.3
command-not-found==0.2.44
configobj==4.7.2
coverage==3.7.1
euca2ools==2.0.0
httplib2==0.7.2
keyring==0.9.2
language-selector==0.1
launchpadlib==1.9.12
lazr.restfulclient==0.12.0
lazr.uri==1.0.3
mock==1.0.1
msgpack-python==0.1.10
oauth==1.0.1
paramiko==1.7.7.1
pyOpenSSL==0.12
pycrypto==2.4.1
pycurl==7.19.0
pyserial==2.5
python-apt==0.8.3ubuntu7.1
python-debian==0.1.21ubuntu1
pyzmq==13.0.0
salt==2014.1.0-31-g0998b54
simplejson==2.3.2
timelib==0.2.4
ufw==0.31.1-1
unattended-upgrades==0.1
unittest-xml-reporting==1.7.0
virtualenv==1.11
wadllib==1.3.0
wsgiref==0.1.2
zope.interface==3.6.1
Is there any more info that I can provide?
Hi. I'm trying to create a Python 2 virtualenv on macOS Mojave and am running into an error.
bagel$ pip3 install --user virtualenv
<snipped>
WARNING: The script virtualenv is installed in '/Users/bagel/Library/Python/3.7/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed virtualenv-20.0.1
bagel$ pip3 list
Package Version
------------------ -------
appdirs 1.4.3
filelock 3.0.12
importlib-metadata 1.5.0
pip 19.3.1
setuptools 42.0.2
six 1.14.0
virtualenv 20.0.1
wheel 0.33.6
zipp 2.2.0
bagel$ which python2.7
/usr/bin/python2.7
bagel$ ~/Library/Python/3.7/bin/virtualenv -p python2.7 venv
PermissionError: [Errno 1] Operation not permitted: '/Users/bagel/Documents/projects/test/venv/bin/python'
It's worth noting that Python 2 is the system Python, while Python 3 is installed from Homebrew.
bug help-wantedMatplotlib doesn't show the figure window from within a virtualenv. I've tried many combinations (e.g. intalling using pip, using easy_install, compiling from source, using --system-site-packages, different versions, etc.) with no luck. The test that makes me think is a virtualenv issue is that if I try to use my working system-wide matplotlib from virtualenv, I don't see a figure. In other words, if I run this:
[~]$ python plotTest.py
it works ok (shows the figure). Then, if I create a virtualenv with --system-site-packages
and run the same script, it doesn't work. That is:
[~]$ virtualenv --system-site-packages vEnv
[~]$ source vEnv/bin/activate
(vEnv)[~]$ python plotTest.py
fails (it hangs and doesn't even return). I need to kill the process.
Btw, the plotTest.py
if the following:
import matplotlib
import matplotlib.pyplot as plt
print "Backend: ", matplotlib.rcParams['backend']
plt.plot([1,2,1])
plt.show()
FWIW, in both cases I do see the line printing MacOSX
as the backend.
Following the discussion in 1362 it became apparent that for virtualenv to be able to support the new world (Windows Store installs, venv interpreters) we need some major change of direction.
Here's my proposal for going ahead with this project. This will be a major refactor for the project, that plans to keep existing interface compatibility though.
universal pypi wheel,
cross-platform - Windows, all UNIX flavours, MacOS.
support for most supported pythons, the initial pool of supported Python version: python2.7
, python3.4
, python3.5
, python3.5
, pypy3
, pypy2
(hoping for IronPython and Jython at some point - any other ones we should support?)
A two year grace period of support: our interface will keep the interpreter support for two more years past its EOL: creating virtual environments is so basic that this package is the last one that should drop compatibility. During this transitional two years period, we guarantee bug fixes and compatibility. New feature support is a best effort though.
ability to specify the target python (we'll use PEP-514/PEP-394/explicit link to discover these versions) and create virtual environments even if that target does not have this package installed
prefer built-in venv: if the target python has venv we'll create the environment using that (and then perform subsequent operations on that to facilitate other guarantees we offer)
ability to provision seed packages (after the creation of the virtual environments this packages will be already installed):
pip
, setuptools
and wheel
are the seed packages (these packages are also automatically injected as offline wheel packages)interfaces:
python -m virtualenv
, virtualenv
)PYTHONPATH=/t/path/to/virtualenv.whl python -m virtualenv
) - universal wheel,import virtualenv; virtualenv.create("target")
shell support - activation/deactivation scripts and prompt environment variables - by default we generate:
three-layered configuration system, each option is determined as follows:
VIRTUALENV_
prefix,plugin system these are extension points the user can inject their own custom logic, and generate an extended version of virtualenv (current bootstrapping logic):
virtualenv support - the operation should work even if the invoking python is a virtualenv created python,
venv support - the operation should work even if the invoking python is a virtualenv created python,
relocatable environments: an environment should keep working as long as the root python is not removed from the OS (e.g. renaming the root environment folder should not break things).
How we differ from the standard library venv? The virtualenv package plans to be:
In general, offer features that other downstream tools (for example tox, pre-commit, pipenv, pipsi, pipx) who need virtual environments as an API would want.
PyPy members (and the public please too) share your thoughts or plus one if you agree. @pfmoore @dstufft @di @pradyunsg @cjerdonek @ncoghlan @jaraco @techalchemy @uranusjr @pganssle @benoit-pierre @dholth @lkollar @takluyver @zooba
Hi. I have a consistent problem with virtualenv. After upgrading python (specifically ssl
module) on the "host", all my virtualenvs will have the same problem. Pip and all modules related to ssl
module will not work anymore. My question is, why doesn't virtualenv make a snapshot of /usr/lib64/ssl.py
? that way at least pip will work and the user can upgrade his virtualenv packages.
the exact error:
import ssl
File "/usr/lib64/python2.7/ssl.py", line 133, in <module>
PROTOCOL_SSLv23 = PROTOCOL_TLS
NameError: name 'PROTOCOL_TLS' is not defined
Reporting the same bug here on MacOS, only I'm highlighting the old vs new-unexpected behavior in a (hopefully) easy reproduction case:
./.test-venv/bin/pip list | grep virtualenv
virtualenv 16.7.9
./.test-venv/bin/python -m virtualenv .mac-os-venv
Using base prefix '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7'
New python executable in /Users/aegelhofer/.mac-os-venv/bin/python
Installing setuptools, pip, wheel...
done.
ls ~/.mac-os-venv/bin/*
/Users/aegelhofer/.mac-os-venv/bin/activate /Users/aegelhofer/.mac-os-venv/bin/pip
/Users/aegelhofer/.mac-os-venv/bin/activate.csh /Users/aegelhofer/.mac-os-venv/bin/pip3
/Users/aegelhofer/.mac-os-venv/bin/activate.fish /Users/aegelhofer/.mac-os-venv/bin/pip3.7
/Users/aegelhofer/.mac-os-venv/bin/activate.ps1 /Users/aegelhofer/.mac-os-venv/bin/python
/Users/aegelhofer/.mac-os-venv/bin/activate.xsh /Users/aegelhofer/.mac-os-venv/bin/python-config
/Users/aegelhofer/.mac-os-venv/bin/activate_this.py /Users/aegelhofer/.mac-os-venv/bin/python3
/Users/aegelhofer/.mac-os-venv/bin/easy_install /Users/aegelhofer/.mac-os-venv/bin/python3.7
/Users/aegelhofer/.mac-os-venv/bin/easy_install-3.7 /Users/aegelhofer/.mac-os-venv/bin/wheel
rm -rf .mac-os-venv
./.test-venv/bin/pip install -U virtualenv
Looking in indexes:
...
Requirement already satisfied, skipping upgrade: six<2,>=1.9.0 in ./.test-venv/lib/python3.7/site-packages (from virtualenv) (1.14.0)
Requirement already satisfied, skipping upgrade: importlib-metadata<2,>=0.12; python_version < "3.8" in ./.test-venv/lib/python3.7/site-packages (from virtualenv) (1.5.0)
Requirement already satisfied, skipping upgrade: filelock<4,>=3.0.0 in ./.test-venv/lib/python3.7/site-packages (from virtualenv) (3.0.12)
Requirement already satisfied, skipping upgrade: appdirs<2,>=1.4.3 in ./.test-venv/lib/python3.7/site-packages (from virtualenv) (1.4.3)
Requirement already satisfied, skipping upgrade: distlib<1,>=0.3.0 in ./.test-venv/lib/python3.7/site-packages (from virtualenv) (0.3.0)
Requirement already satisfied, skipping upgrade: zipp>=0.5 in ./.test-venv/lib/python3.7/site-packages (from importlib-metadata<2,>=0.12; python_version < "3.8"->virtualenv) (2.2.0)
Installing collected packages: virtualenv
Found existing installation: virtualenv 16.7.9
Uninstalling virtualenv-16.7.9:
Successfully uninstalled virtualenv-16.7.9
Successfully installed virtualenv-20.0.4
./.test-venv/bin/python -m virtualenv .mac-os-venv
created virtual environment in 169ms CPython3Posix(dest=/Users/aegelhofer/.mac-os-venv, clear=False, global=False) with seeder FromAppData pip=latest setuptools=latest wheel=latest app_data_dir=/Users/aegelhofer/Library/Application Support/virtualenv/seed-v1 via=copy
Now at this point I expect the python and pip "binaries" to be under ~/.mac-os-venv/bin/*
, but they now seem to be under ~/.mac-os-venv/<sourced-prefix>/bin/*
:
ls ~/.mac-os-venv/bin/*
zsh: no matches found: /Users/aegelhofer/.mac-os-venv/bin/*
ls ~/.mac-os-venv/usr/local/bin/*
/Users/aegelhofer/.mac-os-venv/usr/local/bin/activate /Users/aegelhofer/.mac-os-venv/usr/local/bin/pip
/Users/aegelhofer/.mac-os-venv/usr/local/bin/activate.csh /Users/aegelhofer/.mac-os-venv/usr/local/bin/pip-3.7
/Users/aegelhofer/.mac-os-venv/usr/local/bin/activate.fish /Users/aegelhofer/.mac-os-venv/usr/local/bin/pip3
/Users/aegelhofer/.mac-os-venv/usr/local/bin/activate.ps1 /Users/aegelhofer/.mac-os-venv/usr/local/bin/python
/Users/aegelhofer/.mac-os-venv/usr/local/bin/activate.xsh /Users/aegelhofer/.mac-os-venv/usr/local/bin/python3
/Users/aegelhofer/.mac-os-venv/usr/local/bin/activate_this.py /Users/aegelhofer/.mac-os-venv/usr/local/bin/python3.7
/Users/aegelhofer/.mac-os-venv/usr/local/bin/easy_install /Users/aegelhofer/.mac-os-venv/usr/local/bin/wheel
/Users/aegelhofer/.mac-os-venv/usr/local/bin/easy_install-3.7 /Users/aegelhofer/.mac-os-venv/usr/local/bin/wheel-3.7
/Users/aegelhofer/.mac-os-venv/usr/local/bin/easy_install3 /Users/aegelhofer/.mac-os-venv/usr/local/bin/wheel3
This behavior change messes with tools like tox
that expect to have the pip
binary under <ENV-ROOT>/bin
- Reading the changelog I didn't see anything mentioning this behavior change
If this is un-related, I can file a separate bug, but it seems suspect that we're getting hung up on the same issues relating to "prefixes" here. Attached is my debug output of virtualenv-20.0.4
command creating a virtualenv:
virtualenv-debug-output-issue-1632.txt
Originally posted by @andrewegel in https://github.com/pypa/virtualenv/issues/1632#issuecomment-586485362
PS. moved here as it's a new issue.
needs-reproducerFixes #457
On Travis CI pypy 2.5.0 and pypy3 2.4.0 failed. On my machine pypy 5.1 works fine:
$ pypy virtualenv.py 中文
New pypy executable in /home/yen/tmp/virtualenv/中文/bin/pypy
Installing setuptools, pip, wheel...done.
And pypy3 gives a strange error:
$ pypy3 virtualenv.py 中文
New pypy executable in /home/yen/tmp/virtualenv/中文/bin/pypy3
Also creating executable in /home/yen/tmp/virtualenv/中文/bin/pypy
debug: OperationError:
debug: operror-type: LookupError
debug: operror-value: no codec search functions registered: can't find encoding
debug: OperationError:
debug: operror-type: AttributeError
debug: operror-value: stdout
ERROR: The executable /home/yen/tmp/virtualenv/中文/bin/pypy3 is not functioning
ERROR: It thinks sys.prefix is '/home/yen/tmp/virtualenv' (should be '/home/yen/tmp/virtualenv/中文')
ERROR: virtualenv is not compatible with this system or executable
I guess it's related to a PyPy bug. Reported to https://bitbucket.org/pypy/pypy/issues/2300.
This was migrated from pypa/virtualenv#875 to reparent it to the master
branch. Please see original pull request for any previous discussion.
Recently, the Nushell prompt was broken when running the activation script due to some recent language changes. This PR fixes it again.
Fixes https://github.com/pypa/virtualenv/issues/2480
tox -e fix_lint
)docs/changelog
folderIssue
The Nushell activation script no longer handles prompts correctly due to the split of closures and blocks in 0.72.
https://github.com/pypa/virtualenv/blob/beb7d66b5575f75d4b660d90ad75c3a56deb8a20/src/virtualenv/activation/nushell/activate.nu#L95
This lines checks for type block
, but many/(most?) prompts will now be of type closure
, causing them to render as <Closure X>
rather than actually running the prompt function.
eg.
(venv) <Closure 11>〉
I don't have the expertise to know whether switching that check to "closure" is the correct fix or not so I'm just leaving this bug report rather than opening a PR. Editing that line in my activate.nu
does work as a temporary fix though.
Environment
Provide at least:
pip list
of the host python where virtualenv
is installed:asdf
Package Version
------------ -------
distlib 0.3.6
filelock 3.8.0
pip 22.3.1
platformdirs 2.5.4
setuptools 65.6.3
virtualenv 20.17.1
wheel 0.38.4
Output of the virtual environment creation
This isn't an issue with creation so I'm not including this.
bugIssue
There are ResourceWarning
s on virtual env creation.
Environment
pip list
of the host python where virtualenv
is installed:(integration) [[email protected] pyproject_installer]$ pip list
Package Version
-------------- -------
attrs 22.2.0
distlib 0.3.6
exceptiongroup 1.1.0
filelock 3.8.2
iniconfig 1.1.1
packaging 22.0
pip 22.3.1
platformdirs 2.6.0
pluggy 1.0.0
pytest 7.2.0
setuptools 65.6.3
tomli 2.0.1
virtualenv 20.17.1
wheel 0.38.4
Output of the virtual environment creation
(integration) [[email protected] pyproject_installer]$ python -W error::ResourceWarning -m virtualenv --no-setuptools --no-wheel -vvv --with-traceback test
280 setup logging to NOTSET [DEBUG report:35]
280 created app data folder /usr/src/.local/share/virtualenv [DEBUG __init__:40]
284 find interpreter for spec PythonSpec(path=/usr/src/RPM/BUILD/pyproject_installer/.tox/integration/bin/python) [INFO builtin:56]
284 discover exe for PythonInfo(spec=CPython3.10.8.final.0-64, exe=/usr/src/RPM/BUILD/pyproject_installer/.tox/integration/bin/python, platform=linux, version='3.10.8 (main, Dec 17 2022, 11:34:59) [GCC 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt2)]', encoding_fs_io=utf-8-utf-8) in /usr [DEBUG py_info:437]
284 filesystem is case-sensitive [DEBUG info:24]
285 Attempting to acquire lock 140183178084464 on /usr/src/.local/share/virtualenv/py_info/1/8a94588eda9d64d9e9a351ab8144e55b1fabf5113b54e67dd26a8c27df0381b3.lock [DEBUG _api:172]
285 Lock 140183178084464 acquired on /usr/src/.local/share/virtualenv/py_info/1/8a94588eda9d64d9e9a351ab8144e55b1fabf5113b54e67dd26a8c27df0381b3.lock [DEBUG _api:176]
286 get interpreter info via cmd: /usr/bin/python3.10 /usr/src/RPM/BUILD/pyproject_installer/.tox/integration/lib/python3/site-packages/virtualenv/discovery/py_info.py XjXJ3A7syvkfleqZinswfzCYUKpcUjxL deGvXS8ZsucZgjoK64iWvsew6As8FDQp [DEBUG cached_py_info:108]
390 wrote python info of /usr/bin/python3.10 at /usr/src/.local/share/virtualenv/py_info/1/8a94588eda9d64d9e9a351ab8144e55b1fabf5113b54e67dd26a8c27df0381b3.json [DEBUG via_disk_folder:155]
390 Attempting to release lock 140183178084464 on /usr/src/.local/share/virtualenv/py_info/1/8a94588eda9d64d9e9a351ab8144e55b1fabf5113b54e67dd26a8c27df0381b3.lock [DEBUG _api:209]
391 Lock 140183178084464 released on /usr/src/.local/share/virtualenv/py_info/1/8a94588eda9d64d9e9a351ab8144e55b1fabf5113b54e67dd26a8c27df0381b3.lock [DEBUG _api:212]
391 proposed PythonInfo(spec=CPython3.10.8.final.0-64, system=/usr/bin/python3.10, exe=/usr/src/RPM/BUILD/pyproject_installer/.tox/integration/bin/python, platform=linux, version='3.10.8 (main, Dec 17 2022, 11:34:59) [GCC 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt2)]', encoding_fs_io=utf-8-utf-8) [INFO builtin:63]
391 accepted PythonInfo(spec=CPython3.10.8.final.0-64, system=/usr/bin/python3.10, exe=/usr/src/RPM/BUILD/pyproject_installer/.tox/integration/bin/python, platform=linux, version='3.10.8 (main, Dec 17 2022, 11:34:59) [GCC 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt2)]', encoding_fs_io=utf-8-utf-8) [DEBUG builtin:65]
428 create virtual environment via CPython3Posix(dest=/usr/src/RPM/BUILD/pyproject_installer/test, clear=False, no_vcs_ignore=False, global=False) [INFO session:48]
429 write /usr/src/RPM/BUILD/pyproject_installer/test/pyvenv.cfg [DEBUG pyenv_cfg:30]
429 home = /usr/bin [DEBUG pyenv_cfg:34]
429 implementation = CPython [DEBUG pyenv_cfg:34]
429 version_info = 3.10.8.final.0 [DEBUG pyenv_cfg:34]
429 virtualenv = 20.17.1 [DEBUG pyenv_cfg:34]
429 include-system-site-packages = false [DEBUG pyenv_cfg:34]
429 base-prefix = /usr [DEBUG pyenv_cfg:34]
429 base-exec-prefix = /usr [DEBUG pyenv_cfg:34]
429 base-executable = /usr/bin/python3.10 [DEBUG pyenv_cfg:34]
429 remove file /usr/src/RPM/BUILD/pyproject_installer/test/bin/python [DEBUG _sync:22]
429 symlink /usr/bin/python3.10 to /usr/src/RPM/BUILD/pyproject_installer/test/bin/python [DEBUG _sync:28]
430 create virtualenv import hook file /usr/src/RPM/BUILD/pyproject_installer/test/lib/python3/site-packages/_virtualenv.pth [DEBUG api:89]
430 create /usr/src/RPM/BUILD/pyproject_installer/test/lib/python3/site-packages/_virtualenv.py [DEBUG api:92]
430 ============================== target debug ============================== [DEBUG session:50]
430 debug via /usr/src/RPM/BUILD/pyproject_installer/test/bin/python /usr/src/RPM/BUILD/pyproject_installer/.tox/integration/lib/python3/site-packages/virtualenv/create/debug.py [DEBUG creator:197]
430 {
"sys": {
"executable": "/usr/src/RPM/BUILD/pyproject_installer/test/bin/python",
"_base_executable": "/usr/src/RPM/BUILD/pyproject_installer/test/bin/python",
"prefix": "/usr/src/RPM/BUILD/pyproject_installer/test",
"base_prefix": "/usr",
"real_prefix": null,
"exec_prefix": "/usr/src/RPM/BUILD/pyproject_installer/test",
"base_exec_prefix": "/usr",
"path": [
"/usr/lib64/python310.zip",
"/usr/lib64/python3.10",
"/usr/lib64/python3.10/lib-dynload",
"/usr/src/RPM/BUILD/pyproject_installer/test/lib64/python3/site-packages",
"/usr/src/RPM/BUILD/pyproject_installer/test/lib/python3/site-packages"
],
"meta_path": [
"<class '_distutils_hack.DistutilsMetaFinder'>",
"<class '_virtualenv._Finder'>",
"<class '_frozen_importlib.BuiltinImporter'>",
"<class '_frozen_importlib.FrozenImporter'>",
"<class '_frozen_importlib_external.PathFinder'>"
],
"fs_encoding": "utf-8",
"io_encoding": "utf-8"
},
"version": "3.10.8 (main, Dec 17 2022, 11:34:59) [GCC 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt2)]",
"makefile_filename": "/usr/lib64/python3.10/config-3.10-x86_64-linux-gnu/Makefile",
"os": "<module 'os' from '/usr/lib64/python3.10/os.py'>",
"site": "<module 'site' from '/usr/lib64/python3.10/site.py'>",
"datetime": "<module 'datetime' from '/usr/lib64/python3.10/datetime.py'>",
"math": "<module 'math' from '/usr/lib64/python3.10/lib-dynload/math.cpython-310.so'>",
"json": "<module 'json' from '/usr/lib64/python3.10/json/__init__.py'>"
} [DEBUG session:51]
512 add seed packages via FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/usr/src/.local/share/virtualenv) [INFO session:55]
515 wrote embed update of distribution pip at /usr/src/.local/share/virtualenv/wheel/3.10/embed/3/pip.json [DEBUG via_disk_folder:155]
517 triggered periodic upgrade of pip==22.3.1 (for python 3.10) via background process having PID 3708911 [INFO periodic_update:218]
Exception ignored in: <function Popen.__del__ at 0x7f7ef1a500d0>
Traceback (most recent call last):
File "/usr/lib64/python3.10/subprocess.py", line 1072, in __del__
_warn("subprocess %s is still running" % self.pid,
ResourceWarning: subprocess 3708911 is still running
Exception ignored in: <_io.FileIO name=3 mode='rb' closefd=True>
Traceback (most recent call last):
File "/usr/src/RPM/BUILD/pyproject_installer/.tox/integration/lib/python3/site-packages/virtualenv/seed/wheels/periodic_update.py", line 70, in handle_auto_update
trigger_update(distribution, for_py_version, wheel, search_dirs, app_data, periodic=True, env=env)
ResourceWarning: unclosed file <_io.BufferedReader name=3>
Exception ignored in: <_io.FileIO name=5 mode='rb' closefd=True>
Traceback (most recent call last):
File "/usr/src/RPM/BUILD/pyproject_installer/.tox/integration/lib/python3/site-packages/virtualenv/seed/wheels/periodic_update.py", line 70, in handle_auto_update
trigger_update(distribution, for_py_version, wheel, search_dirs, app_data, periodic=True, env=env)
ResourceWarning: unclosed file <_io.BufferedReader name=5>
...
bug
Issue
For example in the commit https://github.com/pypa/virtualenv/commit/445a68dffa7ba5c0af3b02ec0545b760cd8c04ba it was fixed that the venv prefix on Debian systems with 3.10 includes a wrong "local" prefix. But since virtualenv
caches the PythonInfo class on disk if it called with a specific executable (e.g. poetry specifies a specific exe), it can happen that broken information is provided for the virtual env creation.
The package should include a mechanism to invalidate the cache data if the internals of the PythonInfo changes.
Environment
Provide at least:
pip list
of the host python where virtualenv
is installed:$ pip list
Package Version
---------------------------------- -------------------------
appdirs 1.4.4
argon2-cffi 21.1.0
asn1crypto 1.5.1
astroid 2.12.13
asttokens 2.2.0
async-generator 1.10
attrs 22.1.0
Babel 2.10.3
backcall 0.2.0
beautifulsoup4 4.11.1
beniget 0.4.1
black 22.10.0
bleach 5.0.1
borgbackup 1.2.2
Brotli 1.0.9
build 0.7.0
bytecode 0.14.0
certifi 2022.9.24
chardet 5.1.0
charset-normalizer 3.0.1
click 8.1.3
colorama 0.4.6
coverage 6.5.0
cryptography 38.0.4
cupshelpers 1.0
cycler 0.11.0
dbus-python 1.3.2
debugpy 1.6.3+git20221103.a2a3328
decorator 5.1.1
defusedxml 0.7.1
dill 0.3.6
distlib 0.3.6
distro 1.8.0
distro-info 1.2
entrypoints 0.4
exceptiongroup 1.0.4
executing 1.2.0
fastjsonschema 2.15.1
filelock 3.8.2
flake8 5.0.4
fonttools 4.37.4
fs 2.4.16
gast 0.5.2
html5lib 1.1
httplib2 0.20.4
idna 3.3
importlib-metadata 4.12.0
iotop 0.6
ipykernel 6.17.0
ipython 8.5.0
ipython_genutils 0.2.0
ipywidgets 6.0.0
isort 5.6.4
jedi 0.18.0
Jinja2 3.0.3
jsonpointer 2.3
jsonschema 4.9.1
jupyter-client 7.3.4
jupyter-console 6.4.4
jupyter_core 4.12.0
jupyterlab-pygments 0.2.2
kiwisolver 1.3.2
lazy-object-proxy 1.7.1
libevdev 0.5
llfuse 1.4.1
logilab-common 1.9.7
lxml 4.9.1
lz4 4.0.2+dfsg
Mako 1.2.4.dev0
Markdown 3.4.1
MarkupSafe 2.1.1
matplotlib 3.5.2
matplotlib-inline 0.1.6
mccabe 0.7.0
mechanize 0.4.8
mensapy 0.3.0
more-itertools 8.10.0
mpmath 0.0.0
msgpack 1.0.3
mypy 0.991
mypy-extensions 0.4.3
nbclient 0.7.0
nbconvert 6.5.3
nbformat 5.5.0
nest-asyncio 1.5.4
netifaces 0.11.0
notebook 6.4.12
numpy 1.23.5
olefile 0.46
outcome 1.2.0
packaging 22.0
pandocfilters 1.5.0
parso 0.8.3
pathspec 0.10.1
pep517 0.12.0
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.2.0
pip 22.3.1
platformdirs 2.6.0
ply 3.11
prometheus-client 0.9.0
prompt-toolkit 3.0.36
protobuf 4.21.12
psutil 5.9.4
ptyprocess 0.7.0
pure-eval 0.0.0
py 1.11.0
pycairo 1.20.1
pycodestyle 2.9.1
pycups 2.0.1
pycurl 7.45.1
pydevd 2.9.2
pyflakes 2.5.0
pyfuse3 3.2.1
Pygments 2.13.0
PyGObject 3.42.2
pylint 2.15.8
pyparsing 3.0.9
pyrsistent 0.18.1
PySimpleSOAP 1.16.2
pysmbc 1.0.23
python-apt 2.5.0
python-dateutil 2.8.2
python-debian 0.1.49
python-debianbts 4.0.1
pythran 0.11.0
pytz 2022.6
pyudev 0.24.0
PyYAML 6.0
pyzmq 24.0.1
reportbug 11.6.0
reportlab 3.6.11
requests 2.28.1
rfc3987 1.3.8
SciPy 1.8.1
Send2Trash 1.8.1b0
setuptools 65.5.0
six 1.16.0
sniffio 1.2.0
sortedcontainers 2.4.0
soupsieve 2.3.2
stack-data 0.6.2
sympy 1.11.1
terminado 0.17.0
tinycss2 1.2.1
toml 0.10.2
tomli 2.0.1
tomlkit 0.11.6
tornado 6.2
traitlets 5.5.0
trio 0.22.0
types-aiofiles 22.1
types-annoy 1.17
types-appdirs 1.4
types-aws-xray-sdk 2.10
types-babel 2.11
types-backports.ssl-match-hostname 3.7
types-beautifulsoup4 4.11
types-bleach 5.0
types-boto 2.49
types-braintree 4.17
types-cachetools 5.2
types-caldav 0.10
types-certifi 2021.10.8
types-cffi 1.15
types-chardet 5.0
types-chevron 0.14
types-click-spinner 0.1
types-colorama 0.4
types-commonmark 0.9
types-console-menu 0.7
types-contextvars 2.4
types-croniter 1.3
types-cryptography 3.3
types-D3DShot 0.1
types-dateparser 1.1
types-DateTimeRange 1.2
types-decorator 5.1
types-Deprecated 1.2
types-dj-database-url 1.0
types-docopt 0.6
types-docutils 0.19
types-editdistance 0.6
types-emoji 2.1
types-entrypoints 0.4
types-first 2.0
types-flake8-2020 1.7
types-flake8-bugbear 22.10.27
types-flake8-builtins 2.0
types-flake8-docstrings 1.6
types-flake8-plugin-utils 1.3
types-flake8-rst-docstrings 0.2
types-flake8-simplify 0.19
types-flake8-typing-imports 1.14
types-Flask-Cors 3.0
types-Flask-SQLAlchemy 2.5
types-fpdf2 2.5
types-gdb 12.1
types-google-cloud-ndb 1.11
types-hdbcli 2.14
types-html5lib 1.1
types-httplib2 0.21
types-humanfriendly 10.0
types-invoke 1.7
types-JACK-Client 0.5
types-jmespath 1.0
types-jsonschema 4.17
types-keyboard 0.13
types-ldap3 2.9
types-Markdown 3.4
types-mock 4.0
types-mypy-extensions 0.4
types-mysqlclient 2.1
types-oauthlib 3.2
types-openpyxl 3.0
types-opentracing 2.4
types-paho-mqtt 1.6
types-paramiko 2.11
types-parsimonious 0.10
types-passlib 1.7
types-passpy 1.0
types-peewee 3.15
types-pep8-naming 0.13
types-Pillow 9.3
types-playsound 1.3
types-polib 1.1
types-prettytable 3.4
types-protobuf 3.20
types-psutil 5.9
types-psycopg2 2.9
types-pyaudio 0.2
types-PyAutoGUI 0.9
types-pycurl 7.45
types-pyfarmhash 0.3
types-pyflakes 2.5
types-Pygments 2.13
types-pyinstaller 5.6
types-PyMySQL 1.0
types-pynput 1.7
types-pyOpenSSL 22.1
types-pyRFC3339 1.1
types-PyScreeze 0.1
types-pysftp 0.2
types-pytest-lazy-fixture 0.6
types-python-crontab 2.6
types-python-dateutil 2.8
types-python-gflags 3.1
types-python-jose 3.3
types-python-nmap 0.7
types-python-slugify 6.1
types-pytz 2022.6
types-pyvmomi 7.0
types-pywin32 304
types-PyYAML 6.0
types-redis 4.3
types-regex 2022.10.31
types-requests 2.28
types-retry 0.9
types-Send2Trash 1.8
types-setuptools 65.5
types-simplejson 3.17
types-singledispatch 3.7
types-six 1.16
types-slumber 0.7
types-SQLAlchemy 1.4.43
types-stdlib-list 0.8
types-stripe 3.5
types-tabulate 0.9
types-termcolor 1.1
types-toml 0.10
types-toposort 1.7
types-tqdm 4.64
types-tree-sitter 0.20
types-tree-sitter-languages 1.5
types-ttkthemes 3.2
types-typed-ast 1.5
types-tzlocal 4.2
types-ujson 5.5
types-urllib3 1.26
types-vobject 0.9
types-waitress 2.1
types-whatthepatch 1.0
types-xmltodict 0.13
types-xxhash 3.0
types-zxcvbn 4.4
typing_extensions 4.3.0
ufoLib2 0.13.1
unattended-upgrades 0.1
unicodedata2 15.0.0
uritemplate 4.1.1
urllib3 1.26.12
virtualenv 20.17.1+ds
wcwidth 0.2.5
webcolors 1.11.1
webencodings 0.5.1
wheel 0.38.4
widgetsnbextension 2.0.0
wrapt 1.14.1
zipp 1.0.0
bug
Issue
When installing a package that uses the legacy setup.py install
method, (a reasonably recent version of) pip will emit a PipDeprecationWarning
. I'll use MarkupSafe==2.1.1
here as an example.
Reproducer (using python 3.11)
rm -rf venv_test; python3.11 -m venv venv_test && source venv_test/bin/activate && pip install -U pip && python -VV && python -m pip -V
output:
Requirement already satisfied: pip in ./venv_test/lib/python3.11/site-packages (22.3)
Collecting pip
Using cached pip-22.3.1-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.3
Uninstalling pip-22.3:
Successfully uninstalled pip-22.3
Successfully installed pip-22.3.1
Python 3.11.0 (main, Nov 2 2022, 13:45:57) [GCC 11.3.0]
pip 22.3.1 from ****/venv_test/lib/python3.11/site-packages/pip (python 3.11)
then run
python -W error -m pip --no-cache-dir install --force-reinstall MarkupSafe==2.1.1
which fails with:
Collecting MarkupSafe==2.1.1
Downloading MarkupSafe-2.1.1.tar.gz (18 kB)
Preparing metadata (setup.py) ... done
Installing collected packages: MarkupSafe
ERROR: Exception:
Traceback (most recent call last):
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 494, in run
installed = install_given_reqs(
^^^^^^^^^^^^^^^^^^^
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/req/__init__.py", line 73, in install_given_reqs
requirement.install(
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/req/req_install.py", line 820, in install
self.legacy_install_reason.emit_deprecation(self.name)
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/utils/deprecation.py", line 143, in emit_deprecation
deprecated(
File "****/venv_test/lib/python3.11/site-packages/pip/_internal/utils/deprecation.py", line 120, in deprecated
warnings.warn(message, category=PipDeprecationWarning, stacklevel=2)
pip._internal.utils.deprecation.PipDeprecationWarning: DEPRECATION: MarkupSafe is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
which is the same error I get when installing that dependency without any venv/virtualenv.
Now repeat that same thing with virtualenv
deactivate; python3.11 -m pip install -U virtualenv
rm -rf venv_test; python3.11 -m virtualenv venv_test && source venv_test/bin/activate && pip install -U pip && python -VV && python -m pip -V
output:
# first line
Requirement already satisfied: virtualenv in ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages (20.17.0)
Requirement already satisfied: distlib<1,>=0.3.6 in ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages (from virtualenv) (0.3.6)
Requirement already satisfied: filelock<4,>=3.4.1 in ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages (from virtualenv) (3.8.0)
Requirement already satisfied: platformdirs<3,>=2.4 in ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages (from virtualenv) (2.5.2)
# second line
created virtual environment CPython3.11.0.final.0-64 in 150ms
creator CPython3Posix(dest=****/venv_test, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=~/.local/share/virtualenv)
added seed packages: pip==22.3.1, setuptools==65.6.3, wheel==0.38.4
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Requirement already satisfied: pip in ./venv_test/lib/python3.11/site-packages (22.3.1)
Python 3.11.0 (main, Nov 2 2022, 13:45:57) [GCC 11.3.0]
pip 22.3.1 from ****/venv_test/lib/python3.11/site-packages/pip (python 3.11)
and then run
python -W error -m pip --no-cache-dir install --force-reinstall MarkupSafe==2.1.1
which succeeds with output:
Collecting MarkupSafe==2.1.1
Downloading MarkupSafe-2.1.1.tar.gz (18 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: MarkupSafe
Building wheel for MarkupSafe (setup.py) ... done
Created wheel for MarkupSafe: filename=MarkupSafe-2.1.1-cp311-cp311-linux_x86_64.whl size=28395 sha256=5f329326840a67cc9e48339d97ccd4ca619573531c439b42c4484370f0c27121
Stored in directory: /tmp/pip-ephem-wheel-cache-hwj6l9sz/wheels/96/ee/62/407c247ad088bcb67b530ba3ac1479058c58a651bd6bf09a1f
Successfully built MarkupSafe
Installing collected packages: MarkupSafe
Successfully installed MarkupSafe-2.1.1
Why is that difference there and should it be?
Environment
Provide at least:
Operating System: Linux Mint 21
Kernel: Linux 5.15.0-53-generic
Architecture: x86-64
pip list
of the host python where virtualenv
is installed:
Package Version
-------------------- ---------
attrs 22.1.0
black 22.10.0
CacheControl 0.12.11
cachy 0.3.0
certifi 2022.9.24
cffi 1.15.1
charset-normalizer 2.1.1
cleo 1.0.0a5
click 8.1.3
crashtest 0.3.1
cryptography 38.0.3
distlib 0.3.6
dulwich 0.20.50
filelock 3.8.0
html5lib 1.1
idna 3.4
jaraco.classes 3.2.3
jeepney 0.8.0
jsonschema 4.17.0
keyring 23.9.3
lockfile 0.12.2
more-itertools 9.0.0
msgpack 1.0.4
mypy-extensions 0.4.3
neo4j 5.2.1
packaging 21.3
pathspec 0.10.2
pexpect 4.8.0
pip 22.3.1
pkginfo 1.8.3
platformdirs 2.5.2
poetry 1.2.2
poetry-core 1.3.2
poetry-plugin-export 1.1.2
ptyprocess 0.7.0
pycparser 2.21
pylev 1.4.0
pyparsing 3.0.9
pyrsistent 0.19.2
pytz 2022.6
requests 2.28.1
requests-toolbelt 0.9.1
SecretStorage 3.3.3
setuptools 65.5.0
shellingham 1.5.0
six 1.16.0
tomlkit 0.11.6
urllib3 1.26.12
virtualenv 20.17.0
webencodings 0.5.1
**Output of the virtual environment creation**
Make sure to run the creation with `-vvv --with-traceback`:
```console
62 setup logging to NOTSET [DEBUG report:35]
68 find interpreter for spec PythonSpec(path=~/.pyenv/versions/3.11.0/bin/python3.11) [INFO builtin:56]
68 proposed PythonInfo(spec=CPython3.11.0.final.0-64, exe=~/.pyenv/versions/3.11.0/bin/python3.11, platform=linux, version='3.11.0 (main, Nov 2 2022, 13:45:57) [GCC 11.3.0]', encoding_fs_io=utf-8-utf-8) [INFO builtin:63]
68 accepted PythonInfo(spec=CPython3.11.0.final.0-64, exe=~/.pyenv/versions/3.11.0/bin/python3.11, platform=linux, version='3.11.0 (main, Nov 2 2022, 13:45:57) [GCC 11.3.0]', encoding_fs_io=utf-8-utf-8) [DEBUG builtin:65]
69 filesystem is case-sensitive [DEBUG info:24]
96 create virtual environment via CPython3Posix(dest=****/venv_test, clear=False, no_vcs_ignore=False, global=False) [INFO session:48]
96 create folder ****/venv_test/bin [DEBUG _sync:9]
96 create folder ****/venv_test/lib/python3.11/site-packages [DEBUG _sync:9]
97 write ****/venv_test/pyvenv.cfg [DEBUG pyenv_cfg:30]
97 home = ~/.pyenv/versions/3.11.0/bin [DEBUG pyenv_cfg:34]
97 implementation = CPython [DEBUG pyenv_cfg:34]
97 version_info = 3.11.0.final.0 [DEBUG pyenv_cfg:34]
97 virtualenv = 20.17.0 [DEBUG pyenv_cfg:34]
97 include-system-site-packages = false [DEBUG pyenv_cfg:34]
97 base-prefix = ~/.pyenv/versions/3.11.0 [DEBUG pyenv_cfg:34]
97 base-exec-prefix = ~/.pyenv/versions/3.11.0 [DEBUG pyenv_cfg:34]
97 base-executable = ~/.pyenv/versions/3.11.0/bin/python3.11 [DEBUG pyenv_cfg:34]
97 symlink ~/.pyenv/versions/3.11.0/bin/python3.11 to ****/venv_test/bin/python [DEBUG _sync:28]
97 create virtualenv import hook file ****/venv_test/lib/python3.11/site-packages/_virtualenv.pth [DEBUG api:89]
97 create ****/venv_test/lib/python3.11/site-packages/_virtualenv.py [DEBUG api:92]
98 ============================== target debug ============================== [DEBUG session:50]
99 debug via ****/venv_test/bin/python ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages/virtualenv/create/debug.py [DEBUG creator:197]
98 {
"sys": {
"executable": "****/venv_test/bin/python",
"_base_executable": "~/.pyenv/versions/3.11.0/bin/python3.11",
"prefix": "****/venv_test",
"base_prefix": "~/.pyenv/versions/3.11.0",
"real_prefix": null,
"exec_prefix": "****/venv_test",
"base_exec_prefix": "~/.pyenv/versions/3.11.0",
"path": [
"~/.pyenv/versions/3.11.0/lib/python311.zip",
"~/.pyenv/versions/3.11.0/lib/python3.11",
"~/.pyenv/versions/3.11.0/lib/python3.11/lib-dynload",
"****/venv_test/lib/python3.11/site-packages"
],
"meta_path": [
"<class '_virtualenv._Finder'>",
"<class '_frozen_importlib.BuiltinImporter'>",
"<class '_frozen_importlib.FrozenImporter'>",
"<class '_frozen_importlib_external.PathFinder'>"
],
"fs_encoding": "utf-8",
"io_encoding": "utf-8"
},
"version": "3.11.0 (main, Nov 2 2022, 13:45:57) [GCC 11.3.0]",
"makefile_filename": "~/.pyenv/versions/3.11.0/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
"os": "<module 'os' (frozen)>",
"site": "<module 'site' (frozen)>",
"datetime": "<module 'datetime' from '~/.pyenv/versions/3.11.0/lib/python3.11/datetime.py'>",
"math": "<module 'math' from '~/.pyenv/versions/3.11.0/lib/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
"json": "<module 'json' from '~/.pyenv/versions/3.11.0/lib/python3.11/json/__init__.py'>"
} [DEBUG session:51]
125 add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=~/.local/share/virtualenv) [INFO session:55]
127 got embed update of distribution pip from ~/.local/share/virtualenv/wheel/3.11/embed/3/pip.json [DEBUG via_disk_folder:129]
128 got embed update of distribution wheel from ~/.local/share/virtualenv/wheel/3.11/embed/3/wheel.json [DEBUG via_disk_folder:129]
128 got embed update of distribution setuptools from ~/.local/share/virtualenv/wheel/3.11/embed/3/setuptools.json [DEBUG via_disk_folder:129]
130 got embed update of distribution wheel from ~/.local/share/virtualenv/wheel/3.11/embed/3/wheel.json [DEBUG via_disk_folder:129]
131 got embed update of distribution pip from ~/.local/share/virtualenv/wheel/3.11/embed/3/pip.json [DEBUG via_disk_folder:129]
131 got embed update of distribution setuptools from ~/.local/share/virtualenv/wheel/3.11/embed/3/setuptools.json [DEBUG via_disk_folder:129]
131 install wheel from wheel ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:47]
132 install pip from wheel ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:47]
132 install setuptools from wheel ~/.pyenv/versions/3.11.0/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:47]
132 Attempting to acquire lock 139661494967376 on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any.lock [DEBUG _api:172]
132 Attempting to acquire lock 139661494971856 on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any.lock [DEBUG _api:172]
133 Lock 139661494971856 acquired on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any.lock [DEBUG _api:176]
133 Lock 139661494967376 acquired on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any.lock [DEBUG _api:176]
133 Attempting to acquire lock 139661494966608 on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any.lock [DEBUG _api:172]
133 Attempting to release lock 139661494971856 on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any.lock [DEBUG _api:209]
133 Lock 139661494966608 acquired on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any.lock [DEBUG _api:176]
133 Lock 139661494971856 released on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any.lock [DEBUG _api:212]
133 Attempting to release lock 139661494967376 on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any.lock [DEBUG _api:209]
133 Lock 139661494967376 released on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any.lock [DEBUG _api:212]
133 Attempting to release lock 139661494966608 on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any.lock [DEBUG _api:209]
133 Lock 139661494966608 released on ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any.lock [DEBUG _api:212]
134 copy ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to ****/venv_test/lib/python3.11/site-packages/pip-22.3.1.virtualenv [DEBUG _sync:36]
134 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to ****/venv_test/lib/python3.11/site-packages/setuptools [DEBUG _sync:36]
134 copy ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to ****/venv_test/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [DEBUG _sync:36]
134 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to ****/venv_test/lib/python3.11/site-packages/pip-22.3.1.dist-info [DEBUG _sync:36]
135 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to ****/venv_test/lib/python3.11/site-packages/wheel-0.38.4.dist-info [DEBUG _sync:36]
137 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to ****/venv_test/lib/python3.11/site-packages/pip [DEBUG _sync:36]
137 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to ****/venv_test/lib/python3.11/site-packages/wheel [DEBUG _sync:36]
142 generated console scripts wheel3 wheel wheel3.11 wheel-3.11 [DEBUG base:41]
183 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to ****/venv_test/lib/python3.11/site-packages/pkg_resources [DEBUG _sync:36]
194 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to ****/venv_test/lib/python3.11/site-packages/_distutils_hack [DEBUG _sync:36]
195 copy directory ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to ****/venv_test/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [DEBUG _sync:36]
196 copy ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to ****/venv_test/lib/python3.11/site-packages/distutils-precedence.pth [DEBUG _sync:36]
197 copy ~/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to ****/venv_test/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [DEBUG _sync:36]
197 generated console scripts [DEBUG base:41]
236 generated console scripts pip pip3.11 pip3 pip-3.11 [DEBUG base:41]
236 add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [INFO session:61]
238 write ****/venv_test/pyvenv.cfg [DEBUG pyenv_cfg:30]
238 home = ~/.pyenv/versions/3.11.0/bin [DEBUG pyenv_cfg:34]
238 implementation = CPython [DEBUG pyenv_cfg:34]
238 version_info = 3.11.0.final.0 [DEBUG pyenv_cfg:34]
238 virtualenv = 20.17.0 [DEBUG pyenv_cfg:34]
238 include-system-site-packages = false [DEBUG pyenv_cfg:34]
238 base-prefix = ~/.pyenv/versions/3.11.0 [DEBUG pyenv_cfg:34]
238 base-exec-prefix = ~/.pyenv/versions/3.11.0 [DEBUG pyenv_cfg:34]
238 base-executable = ~/.pyenv/versions/3.11.0/bin/python3.11 [DEBUG pyenv_cfg:34]
238 created virtual environment CPython3.11.0.final.0-64 in 177ms
creator CPython3Posix(dest=****/venv_test, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=~/.local/share/virtualenv)
added seed packages: pip==22.3.1, setuptools==65.6.3, wheel==0.38.4
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [WARNING __main__:17]
bug help-wanted
Issue
Windows PATH environment variable is not set correctly
Description
I have created a virtualenv using this command on Windows: virtualenv venv
and I activated it: venv\Scripts\activate.bat
The full path of the virtualenv is this: C:\Users\omerg\Desktop\Ömer\venv
But when I try to use pip, the system uses global pip installed on C:\Python310\lib\site-packages\pip
instead of C:\Users\omerg\Desktop\Ömer\venv\Scripts\pip
I am investigating, what I found is that the PATH environment variable is not set correctly.
My venv\Scripts\activate.bat
is something like this:
@set "VIRTUAL_ENV=C:\Users\omerg\Desktop\Ömer\venv"
...
@set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"
But when I try to echo the VIRTUAL_ENV or PATH environment variable I am seeing this
But when I try to set VIRTUAL_ENV env var manually, there is no problem
Environment
Output of the virtual environment creation
Make sure to run the creation with -vvv --with-traceback
:
177 setup logging to NOTSET [DEBUG report:35]
203 find interpreter for spec PythonSpec(path=C:\Python310\python.exe) [INFO builtin:56]
203 proposed PythonInfo(spec=CPython3.10.0.final.0-64, exe=C:\Python310\python.exe, platform=win32, version='3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)]', encoding_fs_io=utf-8-utf-8) [INFO builtin:63]
203 accepted PythonInfo(spec=CPython3.10.0.final.0-64, exe=C:\Python310\python.exe, platform=win32, version='3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)]', encoding_fs_io=utf-8-utf-8) [DEBUG builtin:65]
208 symlink on filesystem does not work [DEBUG info:43]
209 filesystem is not case-sensitive [DEBUG info:24]
291 create virtual environment via CPython3Windows(dest=C:\Users\omerg\Desktop\Ömer\venv, clear=False, no_vcs_ignore=False, global=False) [INFO session:48]
291 create folder C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages [DEBUG _sync:9]
292 create folder C:\Users\omerg\Desktop\Ömer\venv\Scripts [DEBUG _sync:9]
293 write C:\Users\omerg\Desktop\Ömer\venv\pyvenv.cfg [DEBUG pyenv_cfg:30]
293 home = C:\Python310 [DEBUG pyenv_cfg:34]
293 implementation = CPython [DEBUG pyenv_cfg:34]
293 version_info = 3.10.0.final.0 [DEBUG pyenv_cfg:34]
293 virtualenv = 20.16.5 [DEBUG pyenv_cfg:34]
294 include-system-site-packages = false [DEBUG pyenv_cfg:34]
294 base-prefix = C:\Python310 [DEBUG pyenv_cfg:34]
294 base-exec-prefix = C:\Python310 [DEBUG pyenv_cfg:34]
294 base-executable = C:\Python310\python.exe [DEBUG pyenv_cfg:34]
295 copy C:\Python310\Lib\venv\scripts\nt\python.exe to C:\Users\omerg\Desktop\Ömer\venv\Scripts\python.exe [DEBUG _sync:36]
297 copy C:\Python310\Lib\venv\scripts\nt\pythonw.exe to C:\Users\omerg\Desktop\Ömer\venv\Scripts\pythonw.exe [DEBUG _sync:36]
299 create virtualenv import hook file C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\_virtualenv.pth [DEBUG api:89]
300 create C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\_virtualenv.py [DEBUG api:92]
302 ============================== target debug ============================== [DEBUG session:50]
303 debug via 'C:\Users\omerg\Desktop\Ömer\venv\Scripts\python.exe' 'C:\Python310\lib\site-packages\virtualenv\create\debug.py' [DEBUG creator:197]
303 {
"sys": {
"executable": "C:\\Users\\omerg\\Desktop\\\u00d6mer\\venv\\Scripts\\python.exe",
"_base_executable": "C:\\Python310\\python.exe",
"prefix": "C:\\Users\\omerg\\Desktop\\\u00d6mer\\venv",
"base_prefix": "C:\\Python310",
"real_prefix": null,
"exec_prefix": "C:\\Users\\omerg\\Desktop\\\u00d6mer\\venv",
"base_exec_prefix": "C:\\Python310",
"path": [
"C:\\Python310\\python310.zip",
"C:\\Python310\\DLLs",
"C:\\Python310\\lib",
"C:\\Python310",
"C:\\Users\\omerg\\Desktop\\\u00d6mer\\venv",
"C:\\Users\\omerg\\Desktop\\\u00d6mer\\venv\\lib\\site-packages"
],
"meta_path": [
"<class '_virtualenv._Finder'>",
"<class '_frozen_importlib.BuiltinImporter'>",
"<class '_frozen_importlib.FrozenImporter'>",
"<class '_frozen_importlib_external.PathFinder'>"
],
"fs_encoding": "utf-8",
"io_encoding": "cp1254"
},
"version": "3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)]",
"makefile_filename": "C:\\Python310\\Lib\\config\\Makefile",
"os": "<module 'os' from 'C:\\\\Python310\\\\lib\\\\os.py'>",
"site": "<module 'site' from 'C:\\\\Python310\\\\lib\\\\site.py'>",
"datetime": "<module 'datetime' from 'C:\\\\Python310\\\\lib\\\\datetime.py'>",
"math": "<module 'math' (built-in)>",
"json": "<module 'json' from 'C:\\\\Python310\\\\lib\\\\json\\\\__init__.py'>"
} [DEBUG session:51]
459 add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\omerg\AppData\Local\pypa\virtualenv) [INFO session:55]
466 got embed update of distribution pip from C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\embed\3\pip.json [DEBUG via_disk_folder:129]
467 got embed update of distribution setuptools from C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\embed\3\setuptools.json [DEBUG via_disk_folder:129]
467 got embed update of distribution wheel from C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\embed\3\wheel.json [DEBUG via_disk_folder:129]
476 got embed update of distribution pip from C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\embed\3\pip.json [DEBUG via_disk_folder:129]
476 got embed update of distribution setuptools from C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\embed\3\setuptools.json [DEBUG via_disk_folder:129]
477 got embed update of distribution wheel from C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\embed\3\wheel.json [DEBUG via_disk_folder:129]
479 install pip from wheel C:\Python310\lib\site-packages\virtualenv\seed\wheels\embed\pip-22.2.2-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:47]
480 install setuptools from wheel C:\Python310\lib\site-packages\virtualenv\seed\wheels\embed\setuptools-65.3.0-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:47]
480 install wheel from wheel C:\Python310\lib\site-packages\virtualenv\seed\wheels\embed\wheel-0.37.1-py2.py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:47]
481 Attempting to acquire lock 2582021659696 on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any.lock [DEBUG _api:172]
481 Attempting to acquire lock 2582021661808 on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any.lock [DEBUG _api:172]
482 Lock 2582021659696 acquired on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any.lock [DEBUG _api:176]
482 Lock 2582021661808 acquired on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any.lock [DEBUG _api:176]
482 Attempting to acquire lock 2582021662816 on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any.lock [DEBUG _api:172]
483 Attempting to release lock 2582021659696 on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any.lock [DEBUG _api:209]
483 Attempting to release lock 2582021661808 on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any.lock [DEBUG _api:209]
483 Lock 2582021662816 acquired on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any.lock [DEBUG _api:176]
484 Lock 2582021659696 released on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any.lock [DEBUG _api:212]
484 Lock 2582021661808 released on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any.lock [DEBUG _api:212]
485 Attempting to release lock 2582021662816 on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any.lock [DEBUG _api:209]
485 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any\pip to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\pip [DEBUG _sync:36]
486 Lock 2582021662816 released on C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any.lock [DEBUG _api:212]
486 copy C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any\distutils-precedence.pth to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\distutils-precedence.pth [DEBUG _sync:36]
487 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any\wheel to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\wheel [DEBUG _sync:36]
488 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any\pkg_resources to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\pkg_resources [DEBUG _sync:36]
520 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any\wheel-0.37.1.dist-info to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\wheel-0.37.1.dist-info [DEBUG _sync:36]
531 copy C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\wheel-0.37.1-py2.py3-none-any\wheel-0.37.1.virtualenv to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\wheel-0.37.1.virtualenv [DEBUG _sync:36]
540 generated console scripts wheel.exe wheel3.10.exe wheel3.exe wheel-3.10.exe [DEBUG base:41]
567 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any\setuptools to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\setuptools [DEBUG _sync:36]
814 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any\setuptools-65.3.0.dist-info to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\setuptools-65.3.0.dist-info [DEBUG _sync:36]
825 copy C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any\setuptools-65.3.0.virtualenv to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\setuptools-65.3.0.virtualenv [DEBUG _sync:36]
826 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\setuptools-65.3.0-py3-none-any\_distutils_hack to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\_distutils_hack [DEBUG _sync:36]
833 generated console scripts [DEBUG base:41]
1118 copy directory C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any\pip-22.2.2.dist-info to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\pip-22.2.2.dist-info [DEBUG _sync:36]
1129 copy C:\Users\omerg\AppData\Local\pypa\virtualenv\wheel\3.10\image\1\CopyPipInstall\pip-22.2.2-py3-none-any\pip-22.2.2.virtualenv to C:\Users\omerg\Desktop\Ömer\venv\Lib\site-packages\pip-22.2.2.virtualenv [DEBUG _sync:36]
1135 generated console scripts pip.exe pip3.10.exe pip3.exe pip-3.10.exe [DEBUG base:41]
1136 add activators for Bash, Batch, Fish, Nushell, PowerShell, Python [INFO session:61]
1145 write C:\Users\omerg\Desktop\Ömer\venv\pyvenv.cfg [DEBUG pyenv_cfg:30]
1145 home = C:\Python310 [DEBUG pyenv_cfg:34]
1146 implementation = CPython [DEBUG pyenv_cfg:34]
1146 version_info = 3.10.0.final.0 [DEBUG pyenv_cfg:34]
1147 virtualenv = 20.16.5 [DEBUG pyenv_cfg:34]
1147 include-system-site-packages = false [DEBUG pyenv_cfg:34]
1147 base-prefix = C:\Python310 [DEBUG pyenv_cfg:34]
1148 base-exec-prefix = C:\Python310 [DEBUG pyenv_cfg:34]
1148 base-executable = C:\Python310\python.exe [DEBUG pyenv_cfg:34]
1149 created virtual environment CPython3.10.0.final.0-64 in 978ms
creator CPython3Windows(dest=C:\Users\omerg\Desktop\Ömer\venv, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\omerg\AppData\Local\pypa\virtualenv)
added seed packages: pip==22.2.2, setuptools==65.3.0, wheel==0.37.1
activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [WARNING __main__:17]
bug
Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.7...20.17.0
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.6...20.16.7
Source code(tar.gz)find_compatible_in_house
by @schaap in https://github.com/pypa/virtualenv/pull/2430Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.5...20.16.6
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.4...20.16.5
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.3...20.16.4
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.2...20.16.3
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.1...20.16.2
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.16.0...20.16.1
Source code(tar.gz)site
after rewrite by @YouJiacheng in https://github.com/pypa/virtualenv/pull/2379Full Changelog: https://github.com/pypa/virtualenv/compare/20.15.1...20.16.0
Source code(tar.gz)Full Changelog: https://github.com/pypa/virtualenv/compare/20.14.1...20.15.0
Source code(tar.gz)to-requirements.txt | Automatically update requirements.txt to-requirements.txt allows to automatically add and delete modules to requirements.txt ins
PyDynamica PyDynamica is a pure python implementation of Sociodynamica, a virtual environment to simulate a simple economy with minimal dependencies.
pyenv installer This tool installs pyenv and friends. It is inspired by rbenv-installer. Prerequisites In general, compiling your own Python interpret
GNS3-server This is the GNS3 server repository. The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM. Clients like the GNS3 GUI
dh-virtualenv Contents Overview Presentations, Blogs & Other Resources Using dh-virtualenv How does it work? Running tests Building the package in a D
Pipes Pipenv Environment Switcher ⚡ Overview Pipes is a Pipenv companion CLI tool that provides a quick way to jump between your pipenv powered projec
pyscreener A pythonic interface to high-throughput virtual screening software Overview This repository contains the source of pyscreener, both a libra
dev-setup Motivation Setting up a new developer machine can be an ad-hoc, manual, and time-consuming process. dev-setup aims to simplify the process w
Simple Python Version Management: pyenv pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UN
pyenv-virtualenv pyenv-virtualenv is a pyenv plugin that provides features to manage virtualenvs and conda environments for Python on UNIX-like system
virtualenv A tool for creating isolated virtual python environments. Installation Documentation Changelog Issues PyPI Github Code of Conduct Everyone
scriptenv Define requirements inside your python code and scriptenv makes them ready to import. Getting Started Install scriptenv $ pip install script
Vex Run a command in the named virtualenv. vex is an alternative to virtualenv's source wherever/bin/activate and deactivate, and virtualenvwrapper's
python-venv-creator A fast and easy python virtual environment created for linux with some optional pre-installed libraries. Dependencies: The followi
Jupyter Docker Stacks are a set of ready-to-run Docker images containing Jupyter applications and interactive computing tools.
PyEmpaq A simple but powerful Python packer to run any project with any virtualenv dependencies anywhwere. With PyEmpaq you can convert any Python pro
VirtualFish VirtualFish is a Python virtual environment manager for the Fish shell. You can get started by reading the documentation. (It’s quite shor
notebook-environments Manage python virtual environments on the working notebook server. Installation It is recommended to use this package together w
SMASH: One-Shot Model Architecture Search through HyperNetworks An experimental technique for efficiently exploring neural architectures. This reposit
Pipenv: Python Development Workflow for Humans [ ~ Dependency Scanning by PyUp.io ~ ] Pipenv is a tool that aims to bring the best of all packaging wo