Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Ubuntu加密主目录| Errno 36文件名太长_Python_Python 2.7_Ubuntu 12.04 - Fatal编程技术网

Python Ubuntu加密主目录| Errno 36文件名太长

Python Ubuntu加密主目录| Errno 36文件名太长,python,python-2.7,ubuntu-12.04,Python,Python 2.7,Ubuntu 12.04,使用python刮刀/爬行器时,遇到一个URL,该URL超过了字符限制,带有标题IOError。使用httplib2,当我尝试检索URL时,我收到一个文件名过长的错误。我更喜欢把我所有的项目都放在主目录中,因为我使用的是Dropbox。不管怎样,还是我应该在家之外设置我的工作目录?文件名太长,以开头。cache/www.example.com'解释了这个问题 httplib2可以选择缓存您发出的请求。您已经启用了缓存,并将其指定为缓存目录.cache 简单的解决方案是将缓存目录放在其他地方 如果

使用python刮刀/爬行器时,遇到一个URL,该URL超过了字符限制,带有标题IOError。使用httplib2,当我尝试检索URL时,我收到一个文件名过长的错误。我更喜欢把我所有的项目都放在主目录中,因为我使用的是Dropbox。不管怎样,还是我应该在家之外设置我的工作目录?

文件名太长,以
开头。cache/www.example.com'
解释了这个问题

httplib2
可以选择缓存您发出的请求。您已经启用了缓存,并将其指定为缓存目录
.cache

简单的解决方案是将缓存目录放在其他地方

如果没有看到您的代码,就不可能告诉您如何修复它。但它应该是微不足道的。的文档显示,它将
dir\u name
作为第一个参数

或者,您也可以传递一个
safe
函数,该函数允许您从URI生成文件名,覆盖默认值。这将允许您生成适合Ubuntu加密fs的144个字符限制的文件名

或者,您也可以使用与
FileCache
相同的接口创建自己的对象,并将其传递给
Http
对象以用作缓存。例如,您可以使用
tempfile
创建随机文件名,并在
anydbm
sqlite3
数据库中存储URL到文件名的映射


当然,最后一种选择是关闭缓存。

因为您显然已经将
'.cache'
传递给
httplib.Http
构造函数,您应该将其更改为更合适的方式或禁用缓存。

您可能遇到了加密文件系统的限制,允许文件名中最多包含143个字符

以下是错误:

目前的解决方案是使用加密主目录之外的任何其他目录。要再次检查此项,请执行以下操作:

mount | grep ecryptfs
并查看是否列出了您的主目录。
如果是这种情况,可以使用home上的其他目录,或者在不使用加密的情况下创建一个新的home目录。

显示实际错误和回溯(以及您当时调用的内容)将非常有帮助。此外,IIRC,
httplib2
默认情况下不保存文件;它为您提供了一个
内容
对象,您可以对该对象执行任何操作(例如,从URL、响应标题等构建本地文件名,并将
内容
保存到该文件中)。这意味着错误将来自您编写的代码,并且可能会以不同的方式写入…Python IOError传递的错误:[Errno 36]文件名太长:'.cache/www.example.com'url超过了文件名限制。我只使用httplib2运行一个“GET”请求,并收到该错误。如果我在主目录之外运行.py文件,没有问题。在一些类似的错误之后,我看到了一个例子,有人因为在一个加密的主目录中而有同样的问题,他除了将py文件移到主目录之外没有其他解决方案。我讨厌这样的想法:解决这个问题的唯一方法是将其移出主目录。好的,问题是缓存文件的文件名太长。将脚本移出主目录不会有帮助;您必须更改其缓存目录。请给我一秒钟时间查看更多详细信息。@DrewK请显示代码。好的,亲爱的,这很有意义。现在看起来非常明显,对ubuntu来说是新的,并且有一些问题。谢谢谢谢你给出了一个明确的答案。不知道我怎么会错过这个!