- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有人可以向我解释一下 python 在 ubuntu 9.04 中发生了什么吗?
我正在尝试启动 virtualenv
,而 --no-site-packages
标志似乎对 ubuntu 没有任何作用。我用 easy_install
安装了 virtualenv 1.3.3
(我已经升级到 setuptools 0.6c9
),所有的东西似乎都安装到了 /usr/local/lib/python2.6/dist-packages
我假定当使用 apt-get 安装包时,它被放置在 /usr/lib/python2.6/dist-packages/
中?
问题是,还有一个 /usr/local/lib/python2.6/site-packages
也只是空着。看起来(通过查看 virtualenv
中的 path
)这是 virtualenv 用作备份的文件夹。因此即使我忽略了 --no-site-packages
,我也无法从我的任何 virtualenv 访问我的本地系统包。
所以我的问题是:
virtualenv
指向其中一个 dist-packages
?/usr/lib/python2.6/dist-packages
或 /usr/local/lib/python2.6/dist-packages/
/usr/lib/python2.6/site-packages
有什么意义?里面什么都没有!/usr/local/lib/python2.6/dist-packages/
中安装了较新版本的软件包 XYZ,并且在 中安装了旧版本(来自 ubuntu repos/apt-get)/usr/lib/python2.6/dist-packages
,当我import xyz
时导入了哪个?我假设这是基于路径列表,是吗?easy_install
应该安装到 /usr/local/lib/python2.6/dist-packages
?pip
吗?感谢任何能解决这个问题的人!
最佳答案
我相信 Mike Orr 来自 the virtual-env mailing list 的回答似乎是最好的。请注意,OP 在两个地方都发布了这个问题。
邮件原始内容:
多年前,Debian 创建了/usr/local/lib/pythonVERSION/site-packages,并编译 Python 二进制文件以将其包含在默认搜索中小路。 Ubuntu 一如既往地遵循了 Debian 的领导。 python 开发人员不喜欢这样,因为你会受到干扰使用相同站点包的本地安装的/usr/local/bin/python目录。 Ubuntu 最终决定放弃站点包并使用dist-packages 相反,他们发明了一个名称,所以它不会干扰任何事情。如果你用谷歌搜索它,在 Python 错误跟踪器或 distutils SIG 或这样的。
系统工作,至少如果你使用 Ubuntu virtualenv 包。有些人在使用本地安装的 virtualenv 时遇到问题Ubuntu 因为没有添加神奇的 sys.path 条目或某物。我不确定 --no-site-packages 因为我从不使用该选项:我从 Ubuntu 包中运行 PIL 和 mysqldb,因为它有时很难编译它们的 C 依赖项。 (需要正确的头文件,Python 忽略头文件等)
所以 Ubuntu Python 包进入/usr/lib/pythonVERSION/dist-包。或者那个 python-support目录出于某种原因。本地安装的 Python 包进入/usr/local/lib/pythonVERSION/dist-packages 默认情况下。每当我安装我运行的 Ubuntu 9.04 系统:
$ sudo apt-get 安装 python-setuptools (6.0c9)$ sudo apt-get 安装 python-virtualenv (1.3.3)$ sudo easy_install pip$ sudo pip install virtualenvwrapper
虽然我还没有尝试过 --no-site-packages,但 virtualenvs 以这种方式工作得很好。
I'm trying to spin up virtualenv, and the --no-site-packages flag seems to do nothing with ubuntu. I installed virtualenv 1.3.3 with easy_install (which I've upgraded to setuptools 0.6c9)
这些版本都在 Ubuntu 9.04 中,所以你让它变得更难了自己在本地安装它们。
and everything seems to be installed to /usr/local/lib/python2.6/dist-packages
是
I assume that when installing a package using apt-get, it's placed in / usr/lib/python2.6/dist-packages/ ?
是
- Is it first come first serve on the path? If I have a newer version of package XYZ installed in /usr/local/lib/python2.6/dist- packages/ and and older one (from ubuntu repos/apt-get) in /usr/lib/ python2.6/dist-packages, which one gets imported when I import xyz? I'm assuming this is based on the path list, yes?
sys.path 按顺序扫描。唯一有趣的是 .pth eggs比某些人预期的更早或更晚进入路径。但是如果你正在使用 pip 来做它能做的一切(即除了安装 pip本身,预编译的鸡蛋,以及一个本地目录的快照复制而不是鸡蛋链接),无论如何你不会有很多 .pth 鸡蛋。
- Why the hell is this so confusing? Is there something I'm missing here?
它没有很好的记录。我通过浏览网页弄明白了。
- Will this affect pip as well?
是的,pip会自动安装到/usr/local/lib/pythonVERSION/站点包。使用“pip install -E$VIRTUAL_ENV packagename"安装到 virtualenv 中。
关于python - Ubuntu + virtualenv = 一团糟? virtualenv 讨厌 dist-packages,想要 site-packages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1215610/
在基于 Dist::Zilla 的发行版中,我想要一些仅用于测试但不安装的文件。这些是运行时不需要的模型库。 我该怎么做? 最佳答案 CPAN 发行版从不安装 t 和 xt 目录。您可以将测试和模拟库
想要编写适用于多个 Linux 发行版的脚本。还想添加检查命令,如果不存在则安装一些软件包。因此,需要一个解决方案来检查 Dist 名称(如 Debian 或 RedHat)以为此 Dist 执行正确
我正在处理我的 Net::Prober分发,使用 dzil .从下一个版本开始,我想强制执行 perl 5.10+ 的最低要求(是 5.006),因为我使用的是命名捕获 :-) 现在我放了use 5.
您的文件夹的首选标记方法是什么,以区分原始 Assets 和使用任务运行器缩小、连接等的 Assets ?我见过一堆组合,最受欢迎的是src and dist , src and build , de
运行此命令后“wwwroot/dist”和“ClientApp/dist”文件夹有什么区别以及如何正确使用它们? dotnet publish -c Release 最佳答案 wwwroot/dist
我刚刚升级到 cabal 1.22.0.0。我创建了一个全新沙箱,并添加了另一个本地包的链接,如下所示: cabal sandbox add-source /home/amy/néal/créatúr
我有一个使用 Universal 的 Anugular 6 应用程序。 通用/服务器端渲染在本地工作。 我想知道如何将此应用程序部署到 azure 。考虑到它有两个 dist 文件夹(dist、dis
我已经提取了以前在另一台计算机上运行的现有 ASP.NET Core 应用程序。 当我在这台计算机上运行应用程序时,出现以下错误: AggregateException: One or more er
我试图将我的 Angular 5 代码迁移到 Angular 6。 执行 npm 后开始出现以下问题 npm start WARNING in ./node_modules/pdfjs-
/~/@ReMix-Run/Router/dist/router.cjs.js模块分析失败:/HOME/sharib/Desktop/Full Stack Developer Tutorial/MER
我正在尝试启动并运行 J2ME Polish 示例项目,但很困难。 我正在使用带有 J2ME Polish 插件的 Netbeans 8.0.2。 当我尝试创建 J2ME Polish 项目 ( Fi
Bable 只能生成 js 文件(在 dist 文件夹中),而不生成项目目录中的其他文件(如 html、css ..)。我正在使用“build”:“babel source -d dist”。 最佳答
我需要帮助,因为我在过去 2-3 天试图解决这个问题.. 我正在 Windows-7(64 位)机器上设置 Hadoop。这是为了尝试R与Hadoop的集成。 我按照 URL - http://www
我正在尝试了解gradle的分布。在7.3.3.4节 gradle documentation 中,有以下代码示例: task dist(type: Zip) { dependsOn spiJ
我想在分发期间复制一个装满 Assets 的文件夹到我的可执行文件旁边。我如何在 .cabal 文件(或者 Setup.hs)中表示它? 目录结构: root/ dist/ -- Genera
我正在构建一个自己的工具来编译相关的js文件(用ES6编写)并将其打包到一个包中。到目前为止,它与本地文件的预期一致,但是当我涉及公共(public)模块时,例如,react 和 redux 等,情况
我正在使用 gulp 为我的 Angular 应用构建分发 (dist) 文件夹。 所以我已经收集了所有 Controller /服务 JS 文件以及我的 CSS,现在我需要处理 bower 文件夹的
我有两个带有元组(坐标)的列表,例如: some_pt1 = [(10.76,2.9),(3.24,4.28),(7.98,1.98),(3.21,9.87)] some_pt2 = [(11.87,
注意 我是新手,刚刚通过编写这段代码“吹嘘”我的方式 我在用什么 - Angular(使用 Angular Cli) - 火力基地 问题/疑虑 当我运行“ng build --watch”时,它会创建
我的大多数 JavaScript 项目都有一个包含源文件的文件夹 lib 和一个包含项目构建的文件夹 dist。 我使用 WebStorm(很棒的 IDE!),并且 WebStorm 的代码检查器和代
我是一名优秀的程序员,十分优秀!