Do not fail in a venv when activate_this.py is not found
The standard Python venv module does not have this script, so currently DIB unconditionally fails. While a real fix will be provided in https://review.opendev.org/#/c/704478/ this change at least allows users to try work around the problem. Change-Id: I45b79d4d283f2b3ea909612e652672dcb6092488
This commit is contained in:
parent
3477dfad00
commit
1e1e36df64
@ -12,6 +12,8 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import runpy
|
import runpy
|
||||||
@ -33,9 +35,16 @@ def running_under_virtualenv():
|
|||||||
def activate_venv():
|
def activate_venv():
|
||||||
if running_under_virtualenv():
|
if running_under_virtualenv():
|
||||||
activate_this = os.path.join(sys.prefix, "bin", "activate_this.py")
|
activate_this = os.path.join(sys.prefix, "bin", "activate_this.py")
|
||||||
globs = runpy.run_path(activate_this, globals())
|
try:
|
||||||
globals().update(globs)
|
globs = runpy.run_path(activate_this, globals())
|
||||||
del globs
|
globals().update(globs)
|
||||||
|
del globs
|
||||||
|
# TODO(dtantsur): replace with FileNotFoundError when Python 2 is no
|
||||||
|
# longer supported.
|
||||||
|
except OSError:
|
||||||
|
print("WARNING: A virtual environment was detected, but the "
|
||||||
|
"activate_this.py script was not found. You may need to set "
|
||||||
|
"PATH manually", file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
Loading…
Reference in New Issue
Block a user