为什么 virtualenv 拉取后依赖全局 python 而不是本地?
Why virtualenv relies on the global python instead of the local one, after being pulled?
我提取了 (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
我用谷歌搜索,但找不到好的解决方案。我想知道:
- 我怎么能保证如果有人拉这个项目,他们只会
使用提供的 python 库,而不是他们自己的 python.
- 这是创建 virtualenv 并将整个项目(包括 virtualenv)推送到云端的正确方法吗?
以下是更多信息:
├── 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
你不能也不应该,如果我使用 32 位 Linux 并且你的 virtualenv 是在 64 位 Windows 上创建的(反之亦然) python 二进制肯定不适合我。
同样,不。 virtualenv 是开发人员的工具,而不是分发工具。对于分发,您应该考虑 sdist/egg/wheel, or creating platform-dependent binaries with PyInstaller, py2exe 或类似的工具。
我提取了 (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
我用谷歌搜索,但找不到好的解决方案。我想知道:
- 我怎么能保证如果有人拉这个项目,他们只会 使用提供的 python 库,而不是他们自己的 python.
- 这是创建 virtualenv 并将整个项目(包括 virtualenv)推送到云端的正确方法吗?
以下是更多信息:
├── 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
你不能也不应该,如果我使用 32 位 Linux 并且你的 virtualenv 是在 64 位 Windows 上创建的(反之亦然) python 二进制肯定不适合我。
同样,不。 virtualenv 是开发人员的工具,而不是分发工具。对于分发,您应该考虑 sdist/egg/wheel, or creating platform-dependent binaries with PyInstaller, py2exe 或类似的工具。