在3.5.0版本中,Python.org引入了一个分发为 嵌入式zip文件的发行版.
不幸的是,压缩文件没有帮助文件(甚至没有自述文件).Python.org上的下载页面只是在下载中列出了它.
显然这是一个可移植的Python发行版.无论如何,它的结构和大小与使用安装程序的标准分发完全不同.
我意识到可以用get-pip.py安装pip,并且由于pip,添加许多其他应用程序包是轻而易举的,尽管我仍然无法添加Tkinter(根据你的shell调整斜杠):
curl https://www.python.org/ftp/python/3.x.x/python-3.x.x-embed-amd64.zip > epython.zip
unzip -o epython.zip -d env1
curl -L https://bootstrap.pypa.io/get-pip.py>env1/get-pip.py
env1/python env1/get-pip.py
Run Code Online (Sandbox Code Playgroud)
添加你需要的东西,例如django:
env1/python -m pip install django
Run Code Online (Sandbox Code Playgroud)
考虑到尺寸(3.5.1-x64的6.5兆),我认为它可以方便地创建隔离环境.
事实上,一般的Python 文档说明了这一点
嵌入式发行版(几乎)与用户系统完全隔离,包括环境变量,系统注册表设置和已安装的软件包
鉴于此,在Windows中,现在有两个独立的Python环境,第二个是标准的 Virtualenv.Virtualenv中的相同过程如下:
virtualenv env2
Run Code Online (Sandbox Code Playgroud)
对于django,它将是:
env2/Scripts/python -m pip install django
Run Code Online (Sandbox Code Playgroud)
比较的内容env1和env2,他们似乎有相同的文件.唯一显着的区别是Tkinter1,这对于桌面应用来说无论如何都不是很重要.
Python Virtualenv和Python嵌入式的区别是什么?
具体来说,使用embeddable zip(env1)和Virtualenv(env2)创建的隔离Web应用程序之间的区别是什么?
当尝试使用 Tkinter 标准库包或其相关功能(海龟图形使用turtle和内置 IDLE IDE)或使用将此作为依赖项的第三方库(例如显示使用 Matplotlib 的图形窗口)。
似乎即使不存在因隐藏标准库模块名称而引起的问题(对于尝试遵循教程并使用海龟图形的初学者来说,这是一个常见问题 -示例 1;示例 2;示例 3;示例 4),通常会发生标准库 Tkinter 无法工作的情况。这是一个大问题,因为许多初学者再次尝试遵循使用海龟图形的教程,并盲目地假设turtle标准库将会存在。
可能会报错:
作为ModuleNotFoundError: No module named 'tkinter'; 或ImportError具有相同消息的 ;或使用不同的大小写(我知道名称从Tkinter2.x 更改为tkinter3.x;这是一个不同的问题)。
类似地,但引用内部_tkinter模块,并显示带有注释的代码“如果失败,您的 Python 可能无法配置 Tk”;或者使用自定义错误消息“请安装 python-tk 包”或类似内容。
当尝试turtle专门使用时,出现“没有名为turtle的模块” ,或者上述错误之一。
当尝试使用 Matplotlib 显示绘图时;通常,这种情况会在尝试更改后端后发生,默认设置是为了避免尝试使用 Tkinter。
当 Tkinter 被记录为标准库的一部分时,为什么会出现这样的问题?如何添加或修复缺少的标准库功能?对于特定的 …
我有一个virtualenv位于/home/user/virtualenvs/Environment.现在我需要在另一台PC上使用这个环境.所以我安装virtualenv-clone并用它来克隆/Environment.然后我通过USB将其复制到另一台PC.我可以激活它source activate,但当我尝试启动python解释器时,sudo ./Environment/bin/python我得到
./bin/python: 1: ./bin/python: Syntax Error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)
没有sudo执行它会给我一个错误,告诉我二进制格式有错误.但这怎么可能呢?我刚刚复制了它.或者有更好的方法吗?我不能只使用,pip freeze因为/Environment/lib/python2.7/site-packages/我自己编写了一些软件包,我也需要复制它们.据我所知,它pip freeze只是创建了一个包列表,然后下载和安装.