代码之家  ›  专栏  ›  技术社区  ›  Azim

为什么virtualenv在被拉入后依赖全局python而不是本地python?

  •  0
  • Azim  · 技术社区  · 7 年前

    我拉(git)了一个python项目,它是(由我在另一台计算机上)使用virtualenv创建的。因此,python库实际上位于本地目录中(例如。, fila_env/bin/python )在这个项目中。拉完后,我可以找到它(见下面的树)。但是,当我激活环境时(使用 source fila_env/bin/activate ),将使用此计算机上的python而不是virtualenv:

    (fila_env) username@ASCSC-645A:~/CODES/.../myProject$ which python
    >>> /usr/bin/python
    

    1. 我怎么能保证,如果有人拉这个项目,他们只会 使用提供的python库,而不是自己的python库。

    以下是更多信息:

    ├── yyyyyyExample.py
    ├── fila_env
    │   ├── bin
    │   │   ├── activate
    │   │   ├── ...
    │   │   ├── python
    │   │   ├── python2 -> python
    │   │   ├── python2.7 -> python
    │   │   ├── python-config
    │   │   ├── ...
    │   │   └── wheel
    │   ├── include
    │   │   └── python2.7 -> /usr/include/python2.7
    │   ├── lib
    │   │   └── python2.7
    │   ├── local
    │   │   ├── bin -> .../fila_env/bin
    │   │   ├── include -> .../fila_env/include
    │   │   └── lib -> .../fila_env/lib
    │   ├── pip-selfcheck.json
    │   └── share
    │       ├── jupyter
    │       └── man
    └── xxxxxxExample.py
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   phd    7 年前
    1. 你不能也不应该,如果我使用32位Linux,而你的virtualenv是在64位Windows上创建的(反之亦然),那么你的python二进制肯定不能为我工作。

    2. 再说一次,virtualenv是开发人员的工具,而不是分发工具。你应该考虑 sdist/egg/wheel PyInstaller , py2exe 或类似工具。