- 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/
谁能告诉我 Core-site.xml、hdfs-site.xml、mapred-site.xml 和 yarn-site.xml 必须具备的属性,没有这些属性 hadoop 就无法启动? 最佳答案
由于特定的 problem我设法解决了这个问题,我今天大部分时间都在弄清楚 site.py(s) 是如何工作的。有一点我不明白。 据我了解,当加载 python 时,首先运行 lib/python2.
这个问题在这里已经有了答案: Using async/await with a forEach loop (33 个答案) 关闭 4 年前。 我认为我的 driver.get(site) 调用设置错
与hadoop api configuration on the client machine有关。 如果我们尝试将客户端计算机上的mapred-site.xml保持尽可能少=仅指定mapred.jo
我一直对site-packages的命名原理有些好奇。 site 在这种情况下是什么意思?我怀疑它的意思是“网站”,而且我从未听说过与安装位置或机器上下文相关的“站点”。 有什么想法吗? 最佳答案 我
我有一个本地 NiFi 实例,我想通过安全的站点到站点通信将数据发送到 AWS 服务器上的远程 NiFi 实例。 我使用 NiFi TLS 工具包为我的客户端和服务器 keystore 和信任库生成了
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我尝试按照说明在我的页面上设置 reCAPTCHA here 。我注册了 API key 对,并获得了公钥和私钥。对我来说,不清楚应该如何使用私钥,并且我无法找到有关它的更多信息。调用 reCAPTC
尝试我的第一个“HELLO WORLD”类型的 Web 应用程序,该应用程序基于显示 godaddy 设置的示例程序。 使用 Visual Studio 2017 和 C#。我的程序在 localho
我使用 HttpClient 从 Hadoop 服务器下载文件。 但其他人说这不利于安全,因为它不需要输入用户 ID。所以我必须将其更改为webhdfs或hdfs。 我必须连接 Hadoop,但它不是
去年,我根据 GitHub Pages' instructions 将我的博客设置为 GitHub 页面“用户站点”在遵循他们的命名约定 username.github.io 的 repo 中。但是,
我尝试了几天在 2 个站点之间创建 VPN 隧道,但没有成功。 场景 我有以下场景: 站点 A 的 IP 地址为 192.168.1.0/24,网关 GWA 的地址为 192.168.1.254 和
我们有一个 VSO 存储库,同一解决方案中包含多个站点。我们希望能够通过持续交付将彼此独立的站点部署到 Azure。现在,第一个站点按字母顺序部署到我们所有的站点,这当然是不可取的。 这可以实现吗?
我们有一个 VSO 存储库,同一解决方案中包含多个站点。我们希望能够通过持续交付将彼此独立的站点部署到 Azure。现在,第一个站点按字母顺序部署到我们所有的站点,这当然是不可取的。 这可以实现吗?
如何为查看者输入“站点”? Eclipse API 中的“站点”是什么? 我在SampleView中找到了以下代码: viewer.setInput(getViewSite()); 其中 viewer
在 The Django Book在关于管理站点的第 6 章中,他们告诉我将以下 URL 模式添加到 urls.py: urlpatterns = patterns('', # ...
我正在尝试安装站点包,并且在运行 makemigrations 时收到错误: django.contrib.admin.sites.AlreadyRegistered: The model Site
我正在尝试使用 Google Tag Manager对于使用 Google Sites 创建的站点,但到目前为止我还没有运气。这个问题似乎已经出现在几个论坛上,但我无法为此找到任何明确的答案。 帮助将
在我的电脑中: /etc/R 中有三个文件Renviron 和 Rprofile.site、Renviron.site 、我在任何地方都找不到Rprofile。这是一个适当的状态吗? Rprofile
我正在尝试安装站点包,并且在运行 makemigrations 时收到错误: django.contrib.admin.sites.AlreadyRegistered: The model Site
我是一名优秀的程序员,十分优秀!