问题标签 [six]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - travis-ci 在 Python3.4 上构建 6 个 urllib 不会安装
我有一个具有 Python 3.4 依赖项(外部命令)的 go 项目。我有一组称为reqs.txt
. 我使用 virtualenv 来确保我在自己的 venv 中,所以我可以安装我的依赖项。
我收到以下错误(下面的完整日志):
这是令人沮丧的,因为就在这一行之前,有一个six
软件包的安装。
我的 .travis.yml 文件
特拉维斯日志
python - AttributeError:使用自定义 python 插件编译 protobuf 时缺少六个“indexbytes”
使用自定义 python 插件编译 protobuf 文件时遇到问题。在一台机器上,它按预期运行,而在另一台机器上,这会导致以下错误:
两台机器都有相同的 Python 版本:2.7.12。
我还确保它们具有相同的 Protobuf 模块版本 (3.2.0) 和六个模块版本 (1.10.0)。
所以我不明白为什么“六”模块会错过上面调用堆栈中提到的“decoder.py”中所需的“indexbytes”方法。
python - 无法在 ipython 中导入 Tensorflow
我的 macbook pro Yosemite 上有 tensorflow 版本 1.0.0 非 GPU 版本。它安装在 virtualenv 中,我有 python 2.7。我有六个版本 1.4.1。当我python
在命令行上执行并导入六个时,它工作正常。但是当我输入 'ipython' 并导入 tensorflow 时,我看到了这个错误:
我尝试升级六,但我仍然看到版本 1.4.1。六是这里的问题吗?如果不是,那是什么?
python - 哇, Six.with_metaclass() 有效吗?
嗨 Stackoverflow 社区
我一直试图了解 Django(和 Wagtail 的 Stream-field)如何在幕后工作。这样做我了解了元类,并相信掌握了这一原则。也就是说,SIX 如何执行 with_metaclass 函数对我来说仍然有点模糊。这是代码,后面是一个特定的问题:
模型.py
wagtailcore > fields.py
wagtailcore > 块 > stream_block.py
六.py
问题
(1) 描述建议我们生成一个临时的虚拟元类,用实际的元类替换自己。(2) 这是如何工作的?(3) 我们如何通过 with_metaclass 函数对元类生成进行排序?(4) BaseStreamBlock 是从哪里来的?
让我困惑的部分是我们定义
但只能通过以下方式调用它:
在 [2] 中,我们实例化了在 [1] 中定义的类元类。此类的实例包含 DeclarativeSubBlockMetaclass 作为类型,并包含“temporary_class”作为名称,没有基础或属性。
在 [1] 中,我们定义了看起来正在执行实际元类工作的元类类。在这里,我们开发了一个类生成器,它根据基数和名称生成 DeclarativeSubBlockMetaclass 类型的类(作为元传递)。
但是,由于对 [1] 的唯一调用来自 [2],因此我们似乎正在做的只是实例化没有任何基础或属性的DeclarativeSubBlockMetaclass类型的“temporary_class”。
我们如何用描述(1)中描述的实际元类替换这个临时虚拟元类?
我试图为此查阅六人的文档,但找不到任何可以解决我困惑的东西。
任何建议将不胜感激。
非常感谢Z
仅用于上下文:
我在上面的 Six.with_metaclass 调用中包含了两个类的代码:
声明性子块元类
基本流块
python - 无法安装python六模块
我在 AWS 云中有一台服务器。它正在运行一个可以很好地调用 Google STT API 的烧瓶 API。然后,我尝试通过设置 virtualenv 并让 API 在那里运行来“生产”API,以运行 Gunicorn。
当我尝试在虚拟容器中运行 API 时,它给出了关于导入 google api 客户端的错误。我的 virtualenv 中没有 google api 客户端文件夹,所以我从主要的 python2.7 站点包文件夹中复制了文件夹。然后我收到一个错误,说它无法在 googleapiclient/discovery.py 中导入六个。错误是“ImportError:没有名为 6 的模块”。
我的 virtualenv python 文件夹中没有六个目录。所以我试图从我的主要 python2.7 文件夹中复制一个名为 6-1.10.0.dist-info 的文件夹,但这没有帮助。我尝试了很多事情......例如强制重新安装,但仍然与来自 googleapiclient/discovery.py 的 google api 参考相同的错误。所以我尝试了“sudo pip 卸载六;sudo pip 安装六”。这已成功卸载,但现在我无法再次安装。当我运行“sudo pip install 6”时,我得到以下信息:
我也尝试过 easy_install 和 --upgrade --ignore-installed 等选项,但行为没有改变。
到底他妈发生了什么?为什么我不能重装六个?为什么它无论如何都不会被识别?
更新所以这篇文章 stackoverflow.com/questions/13270877/... 帮助我将六个安装回主 python 环境。我的 API 现在在那里运行良好。但同样的方法对虚拟环境不起作用。
运行“unset PYTHONPATH”似乎帮助我将模块安装到 virtualenv 中。AWS 映像似乎已经添加了一个混淆 virtualenv 的 python 路径。但是,我仍然在下面用六个胡说八道。到底是怎么回事?
python - 为不同版本的 Python 创建 pip 包
我有一大块用 Python 2.7 编写的代码。我的最终目标是在 Python 2 和 3 中都有工作版本,它们都可以通过 pip 安装并在 GitHub 上可用。这方面的标准做法是什么?
我所做的一切mypackage
- 运行
2to3
包,它给了我两个不同版本的代码(Python 2.7 和 3.4) - 接受将新功能添加到 3.4 而不是 2.7 的约定,尽管错误修复将被推送到 2.7
setup.py
为两者创建脚本mypackage
使用 Python 3.4 = 1.0 版和 Python 2.7 =mypackage
0.9版上传到 pip 。- 将 3.4 版本上传到 GitHub,但添加了一个文件夹
python27
,其中包含 Python 2.7 代码
所以现在你可以pip
分别安装 3.4 和 2.7 版本了
这一切似乎令人费解。问题:
- 执行此操作的标准方法是什么?
- 我真的需要两个不同版本的代码吗?
six
几年后,由于依赖原因,我有点犹豫要不要使用。 - pip 是否足够聪明,可以根据它所绑定的 Python 版本下载正确的 Python 版本?
- 在 GitHub 上如何处理这个问题?代码的两个版本使这变得困难。
python - 使用 urlopen 在 FTP 服务器上获取文件的最后修改日期不起作用
以下如何使用 python3 urllib 获取最后修改时间?我想获取 FTP 服务器上文件的最后修改日期。但是,使用上面的代码,last-modified
是None
. 有什么建议么?我希望解决方案同时适用于 python 2 和 python 3
python - 使用 urlretrieve 后关闭 ftp 连接
像这样使用 urlretrieve 后是否需要关闭 ftp 连接?如果是,那么如何?
python - Django 1.9.13 抱怨 SubfieldBase 已被弃用,但我没有使用它。如何解决?
我正在将一个旧的 Django 项目从 Django 1.8.3 升级到当前的 Django 1.11,但要小心,我正在升级到 Django 的每个主要版本,所以我可以在下一个之前找到错误和弃用并修复它们步。(我已经快两年没碰过这段代码了,所以我有点生疏;如果我犯了一个简单的错误,请原谅我。)
我第一次升级到 Django 1.9.13(1.10 之前的最后一个),当我manage.py runserver
,我得到这个错误:
/Users/mboszko/.virtualenvs/opticaldev/lib/python2.7/site-packages/django/utils/six.py:808: RemovedInDjango110Warning: SubfieldBase 已被弃用。请改用 Field.from_db_value。
返回元(名称,基地,d)
如果我没看错,则该错误源于six
Django 嵌入的自定义版本。我已经搜索了我的代码,但我似乎没有SubfieldBase
在我自己的代码中使用任何地方。(我也用谷歌搜索了这个特殊的错误,但没有多大成功six
。)
这只是我应该升级到 Django 1.10 的情况,并且该six
包中的新版本将兼容,还是在升级之前我需要自己解决一些问题?
python - 六:无法导入名称python_2_unicode_compatible
在six 1.10.0
Python 和 pip 2.6 下安装后,旧的 Django 1.0.4 应用程序无法导入python_2_unicode_compatible
,即使它发现six
1.10.0 就好了:
我已经在应用程序中使用 python 代码确认它确实可以访问six
:
我的任务是将运行 django 1.0.4(你没看错,1.0.4)和 django_cms 2.0.0 Alpha 的非常旧的站点移动到新服务器。旧服务器坏了,所以我只有备份很久以前安装的主要网站文件和依赖项。
我正在对它进行 Dockerizing 以帮助记录和在未来部署它。
我已经尝试过Apache mod_wsgi
,gunicorn
(已安装 pip2.6)并且当前正在使用uwsgi
(首选,已安装 pip2.6)来加载应用程序。
Nginx
正在另一个 Docker 容器中运行proxy_pass
,并且将使用前端代理和 TLS。
uwsgi
使用自定义启动站点wsgi
。
加载/
索引页面后,我遇到了许多导入错误。慢慢地,我正在解决每一个问题(主要与 Django “MIDDLEWARE_CLASSES”有关,我还没有找到它们的定义)。
我目前陷入以下错误:
uwsgi 用指定的 python2.6 启动就好了:
另外,python2.7 最初是配置的并且有完全相同的错误。我想我读到了 python_2_unicode_compatible 在 2.7 或其他版本中被弃用的地方,所以我回到了网站运行的原始版本。
我需要安装virtualenv吗?我通常不会在 Docker 下这样做,而只是全局安装所有内容。我看不出这会有什么不同。
如果six
没有找到,我会不会得到一个错误,它不能导入六个,而不是python_2_unicode_compatible
?