当前的 Python 版本是 2.4 ...
yum upgrade python
Run Code Online (Sandbox Code Playgroud)
给
Could not find update match for python
Run Code Online (Sandbox Code Playgroud)
我必须从源代码安装吗?
如何在linux中的simplehttpserver上从8000更改端口?
我正在尝试在我的本地 ubuntu 机器上使用 django 应用程序。但是,该站点无法正常工作,并且我的站点中/var/log/apache2/errors.log充满了如下消息:
ImportError: No module named site
Run Code Online (Sandbox Code Playgroud)
我的/var/log/apache2/error.log(今天)看起来像这样:
$ cat error.log | uniq -c
1 [Wed Jun 29 09:37:37 2011] [notice] Apache/2.2.17 (Ubuntu) mod_wsgi/3.3 Python/2.7.1+ configured -- resuming normal operations
12966 ImportError: No module named site
Run Code Online (Sandbox Code Playgroud)
这是当我打开机器时它启动的通知,然后是 12,966 行都在说no module named site消息
请注意缺少日期时间字段。即使不访问网站(即,即使不发出网络请求),也会重复这些错误。在浏览器中访问网站时,它只是挂起,好像在等待大量下载。
我正在使用 python 2.5 virtualenv,其中安装了很多包(包括 django 1.1)和 pip。我已经加载了 mod_wsgi:
$ ls -l /etc/apache2/mods-enabled/wsgi*
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/apache2/mods-enabled/wsgi.conf -> ../mods-available/wsgi.conf
lrwxrwxrwx 1 root …Run Code Online (Sandbox Code Playgroud) 我们在 CentOS 5.7 服务器上安装了 FreeRADIUS 2 守护进程。
我们想使用预先编写的 Python 模块来进行授权,但有一个问题:我们拥有的 Python 模块需要Python 2.6或更高版本,但 CentOS 附带的 Python 是Python 2.4。
现在,服务器管理员已经在一个单独的文件夹中安装了 Python 2.6,/usr/lib/Python2.6所以我们可以从那里运行 Python 2.6。但是,/usr/bin/python仍然是 Python 2.4。显然,替换默认的 Python 2.4 会导致各种问题。
有什么方法可以强制使用 FreeRADIUS/usr/lib/Python2.6而不是默认的 2.4 来定位和运行模块吗?
我正在使用 uWSGI 和 nginx 在 CentOS 服务器上运行 Python Pyramid 应用程序。我使用 SQLAlchemy 作为 ORM,使用 MySQLdb 作为 API,使用 MySQL 作为数据库。该网站还没有上线,所以唯一的流量是我和公司的其他一些员工。我们购买了一些数据来填充数据库,因此最大(也是最常查询)的表是 ~150,000 行。
昨天我快速连续打开了网站的四个新标签,我收到了几个 502 Bad Gateway 错误。我查看了 uWSGI 日志,发现以下内容:
sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 'SELECT ge...
Run Code Online (Sandbox Code Playgroud)
重要说明: 此错误不是由 MySQL 的 wait_timeout 引起的。去过也做过。
我想知道这个问题是否是由同时提供并发请求引起的。我让自己成为一个穷人的负载测试员:
for i in {1..10}; do (curl -o /dev/null http://domain.com &); done;
Run Code Online (Sandbox Code Playgroud)
果然,在这十个请求中,至少有一个会抛出 2006 错误,通常更多。有时错误会变得更奇怪,例如:
sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column 'table.id'"
Run Code Online (Sandbox Code Playgroud)
当该列绝对存在并且在所有其他相同请求上工作正常时。或者,这个:
sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been …Run Code Online (Sandbox Code Playgroud) 我正在使用 Python-LDAP over SASL(DIGEST-MD5) 将我们的 AD 与在 Linux 上运行 Python 的 Web 服务集成,以查询 AD 2012 用户属性(部门、部门、电话分机、电子邮件等)。在针对 AD 2003 解决特定于我的服务的问题后,我开始遇到针对我们的新 AD 2012 的 SPN 错误,即摘要 uri 与服务器上的任何 SPN 都不匹配。我已经交叉引用了两台服务器的 SPN 列表,它们包含彼此相同的类似物。
这是通过运行修复的:
setspn -A ldap/<Domain_Name> <Computer_Name>
Run Code Online (Sandbox Code Playgroud)
请注意,即使运行以下命令,创建服务帐户也无法修复我的 SPN 错误:
setspn -A ldap/<Domain_Name> <Domain_Name>/<Service_Account_Name>
Run Code Online (Sandbox Code Playgroud)
仅使用 sasl_interactive_bind_s() 将 SPN 添加到本地机器 SPN 列表才适用于我的 Python-LDAP 服务。我还应该注意,如果我使用 simple_bind_s() 可以跳过 SPN 步骤,但此方法以明文形式发送凭据,这是不可接受的。
但是我注意到该记录只在 SPN 列表上停留了大约一分钟然后消失了?运行 setspn 命令时没有错误,事件日志完全为空,任何地方都没有重复项,在基本 dn 上使用 -F …
目标是从 stdin 读取 zip 文件并解压缩到 stdout。
Funzip 有效并且是我正在寻找的解决方案,zip 包含一个文件,不幸的是,当压缩文件大小约为 1GB 或更大时,funzip 会失败:
funzip error: invalid compressed data--length error
Run Code Online (Sandbox Code Playgroud)
更新:我发现上述错误可能并不表示实际错误。比较两个未压缩的文件,一个是传统解压缩,另一个是通过管道使用 funzip(将上述错误写入 stderr),这些文件是相同的。我想保持这个开放,所以这可以被确认或报告。
使用python的相关解决方案: 解压缩通过管道飞入的文件
然而,这个输出被定向到一个文件。
我有一个依赖于多个包的 Python 应用程序。不幸的是,其中一个包不在 PyPi 中,所以我必须直接从 git 存储库安装它。
我一直在尝试将它添加到我的 setup.py 中,如下所示:
setup(
..,
..,
dependency_links = [
'https://github.com/marcuz/libpynexmo.git#egg=nexmomessage'
],
install_requires=[
..,
'nexmomessage'
],
packages=['localpackage']
Run Code Online (Sandbox Code Playgroud)
但是它失败了:根本没有找到 nexmomessage 的发行版
我看到它在哪里创建依赖链接列表:将dependency_links 写入common.egg-info/dependency_links.txt - 当我查看该文件时,URL 是正确的。
如果我在命令行运行它: pip install -e git+ https://github.com/marcuz/libpynexmo.git#egg=nexmomessage
它安装没有问题。
想法?
对以下内容的更新:
我在不同数据中心的 Debian 虚拟机上的不相关脚本上遇到了类似的问题。
这看起来很像这里描述的问题(就像问这个问题的人一样,我没有在服务器前配置代理)。
与以下描述的主要区别在于,当我附加到挂起的进程时,我看到的是对recvfrom而不是的调用read:
$ strace -p 17527
Process 17527 attached - interrupt to quit
recvfrom(3,
Run Code Online (Sandbox Code Playgroud)
然而,Python 并没有任何被代理的印象:
>>> import os; print os.getenv("HTTP_PROXY"), os.getenv("http_proxy")
None, None
Run Code Online (Sandbox Code Playgroud)
所以我还是很难过。可悲的是,链接的问题也没有最终答案。
(我也想知道这个问题是否相关,但 S3 似乎不太可能不尊重Connection: close标题。)
我有几个 Debian(Wheezy、x86_64)服务器都表现出以下行为:
所有服务器都有一组 cron 作业,其中包括从 S3 中提取数据。这些通常运行良好,但偶尔会ps aux显示一些小时或几天前开始的作业仍在运行,并且没有完全完成。
通过strace -p <pid>显示检查它们,在所有情况下,该进程都挂在读取命令上。比如我刚才查的一个进程的输出是:
$ strace -p 12089
Process 12089 attached - interrupt to quit
read(5,
Run Code Online (Sandbox Code Playgroud)
检查打开的文件描述符给了我这个:
$ sudo lsof -i | grep 12089
python 12089 …Run Code Online (Sandbox Code Playgroud) 我们有一个 Jenkins CI 服务器,它从 Git 获取我们的代码,构建它,制作一个 Docker 镜像,然后将它发送到一些生产服务器。
我们的项目主要是用 Python 编写的,所以“构建”涉及运行
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
效果很好,只是有点慢。它必须通过网络获取包,另外还必须为其中一些构建 C 库(而且“lxml”并不小!)。
在开发中,我已经成功地pip-accel用来加速这个过程。它具有相同的接口,pip但它同时缓存 Python 下载和构建的 C 代码,所以
pip-accel install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
很快。
我想为我们的生产版本这样做,但我遇到了一些障碍。
显然,pip-accel需要一个目录来存储缓存。因为我们的 CI 服务器是运行构建的地方,所以这是放置它的合乎逻辑的地方。但是该pip install命令在一个新的 Docker 容器中运行,因此它不能只访问该服务器上的公共目录。
Docker“卷”似乎是为与容器共享目录而设计的,但我们的构建发生在内部(令人惊讶)docker build,并且只docker run允许您附加卷。您不能使用docker build.
有什么我想念的吗?如何在我docker build所在的容器之外运行并与我的主机共享缓存文件夹?
python ×10
linux ×3
pip ×2
apache-2.2 ×1
bash ×1
build-server ×1
centos5 ×1
compression ×1
deployment ×1
django ×1
docker ×1
freeradius2 ×1
http ×1
ldap ×1
mac-osx ×1
mod-wsgi ×1
mysql ×1
pipe ×1
redhat ×1
spn ×1
svn ×1
tcp ×1
uwsgi ×1
wsgi ×1