首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Virtualenv包安装和导入

Virtualenv包安装和导入
EN

Stack Overflow用户
提问于 2014-11-15 08:46:09
回答 1查看 263关注 0票数 2

我是Python的新手,但我决定使用their tutorial来试用金字塔web应用程序框架。我修改了一些步骤,使其与我所理解的使用现代工具处理此问题的适当方式保持同步。

作为背景,virtualenv和my python (版本3.4)安装在我的Mac (Yosemite)和macports上。

这是我所做的:

代码语言:javascript
复制
$ virtualenv swapenv
Using base prefix '/opt/local/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in swapenv/bin/python3.4
Also creating executable in swapenv/bin/python
Installing setuptools, pip...done.
$ source swapenv/bin/activate
(swapenv)$ pip install pyramid
... (successful install of pyramid with some warnings) ...

到现在为止还好。现在我试着检查是否可以验证安装,看看python找不到它。我撞了一个小时的头。然后考虑试试python3

代码语言:javascript
复制
(swapenv)$ python
Python 3.4.2 (default, Oct 19 2014, 11:45:18) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyramid
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'pyramid'
>>> exit()
(swapenv)$ python3
Python 3.4.2 (default, Oct 19 2014, 11:45:18) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyramid
>>> 

因此,如果我使用python3,它可以工作,但python不能。我去验证了这些安装:

代码语言:javascript
复制
(swapenv)rook-4:bin nateford$ pwd
/Users/nateford/experiments/pyramid/swapenv/bin
(swapenv)rook-4:bin nateford$ which python
/Users/nateford/experiments/pyramid/swapenv/bin/python
(swapenv)rook-4:bin nateford$ which python3
/Users/nateford/experiments/pyramid/swapenv/bin/python3

好的,那么指向不同的地方,对吧?或者不是...?

代码语言:javascript
复制
(swapenv)rook-4:bin nateford$ cd /Users/nateford/experiments/pyramid/swapenv/bin
(swapenv)rook-4:bin nateford$ ls -la python*
lrwxr-xr-x  1 nateford  staff      9 Nov 14 16:25 python -> python3.4
lrwxr-xr-x  1 nateford  staff      9 Nov 14 16:25 python3 -> python3.4
-rwxr-xr-x  1 nateford  staff  13180 Nov 14 16:25 python3.4

为什么使用python和使用python3会有不同的结果?有没有一种方法可以诊断这种差异?有没有办法纠正这种差异(我不打算使用Python2,所以我希望所有内容都指向python3)。

UPDATE:对于一个评论请求,python -m site命令输出以下内容

代码语言:javascript
复制
(swapenv)rook-4:bin nateford$ python -m site
sys.path = [
    '/Users/nateford/experiments/pyramid/swapenv/bin',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/webapp-0.1-py3.4.egg',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python34.zip',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages',
]
USER_BASE: '/Users/nateford/Library/Python/3.4' (doesn't exist)
USER_SITE: '/Users/nateford/Library/Python/3.4/lib/python/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
(swapenv)rook-4:bin nateford$ python3 -m site
sys.path = [
    '/Users/nateford/experiments/pyramid/swapenv/bin',
    '/Users/nateford/experiments/pyramid/swapenv/lib/python34.zip',
    '/Users/nateford/experiments/pyramid/swapenv/lib/python3.4',
    '/Users/nateford/experiments/pyramid/swapenv/lib/python3.4/plat-darwin',
    '/Users/nateford/experiments/pyramid/swapenv/lib/python3.4/lib-dynload',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
    '/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
    '/Users/nateford/experiments/pyramid/swapenv/lib/python3.4/site-packages',
]
USER_BASE: '/Users/nateford/.local' (doesn't exist)
USER_SITE: '/Users/nateford/.local/lib/python3.4/site-packages' (doesn't exist)
ENABLE_USER_SITE: False
EN

回答 1

Stack Overflow用户

发布于 2015-12-12 08:21:23

似乎您的pythonpython3在创建虚拟环境时所指向的位置很重要。解决这个问题的第一步是确保MacPorts选择了正确的Python版本:

代码语言:javascript
复制
sudo port select --set python python34

然后照常创建虚拟环境。这确保了pippython别名和虚拟环境创建的bin链接都指向相同的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26941221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档