Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 dateutil错误_Python_Macos_Python 2.7_Python Datetime_Python Dateutil - Fatal编程技术网

Python dateutil错误

Python dateutil错误,python,macos,python-2.7,python-datetime,python-dateutil,Python,Macos,Python 2.7,Python Datetime,Python Dateutil,我在下面的示例代码中得到以下错误。我不知道为什么或者是什么原因导致了这个错误,因为这个代码在过去工作得很好。我正在使用Python 2.7 AttributeError: 'module' object has no attribute 'allocate_lock' 下面是一个包含问题的最小示例 import pandas as pd import pytz from datetime import datetime, timedelta from dateutil import rrul

我在下面的示例代码中得到以下错误。我不知道为什么或者是什么原因导致了这个错误,因为这个代码在过去工作得很好。我正在使用Python 2.7

AttributeError: 'module' object has no attribute 'allocate_lock'
下面是一个包含问题的最小示例

import pandas as pd
import pytz

from datetime import datetime, timedelta
from dateutil import rrule

start = pd.Timestamp('1900-01-01', tz='UTC')
end_base = pd.Timestamp('today', tz='UTC')
end = end_base + timedelta(days=365)

def canonicalize_datetime(dt):
    return datetime(dt.year, dt.month, dt.day, tzinfo=pytz.utc)

def get_rules(start, end):
    rules = []

    start = canonicalize_datetime(start)
    end = canonicalize_datetime(end)

    weekends = rrule.rrule(
        rrule.YEARLY,
        byweekday=(rrule.SA, rrule.SU),
        cache=True,
        dtstart=start,
        until=end
    )
    rules.append(weekends)

    return rules

rules = get_rules(start, end)
完全回溯

Traceback (most recent call last):
  File "/Users/mac/Documents/test.py", line 48, in <module>
    rules = get_rules(start, end)
  File "/Users/mac/Documents/test.py", line 42, in get_rules
    until=end
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dateutil/rrule.py", line 239, in __init__
    super(rrule, self).__init__(cache)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dateutil/rrule.py", line 90, in __init__
    self._cache_lock = _thread.allocate_lock()
AttributeError: 'module' object has no attribute 'allocate_lock'

进一步调查后,问题似乎是安装了不正确的版本。通过安装datetuil-1.5,问题得以解决

python-dateutil-2.0.tar.gz(python>=3.0)

python-dateutil-1.5.tar.gz(python<3.0)


然而,这可能会导致更多的问题,比如为什么dateutil版本2.2在其他人使用python 2.7时工作

在使用Anaconda python运行Caffe时出现此错误;评论中的陈述为我解决了这个问题

pip install --upgrade python-dateutil
Collecting python-dateutil
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
    100% |████████████████████████████████| 194kB 484kB/s 
Requirement already up-to-date: six>=1.5 in /home/alex/anaconda3/lib/python3.6/site-packages (from python-dateutil)
Installing collected packages: python-dateutil
  Found existing installation: python-dateutil 1.5
    Uninstalling python-dateutil-1.5:
      Successfully uninstalled python-dateutil-1.5
Successfully installed python-dateutil-2.6.0

如何安装
dateutil
?看起来你可能有py3k版本。自从上次它工作以来,你有什么改变吗?@PatrickCollins我使用了
pip-2.7
,我运行了
pip-2.7安装——升级python dateutil
,只是为了确定,它说一切都是最新的,我只是尝试了
python-3.4
,3.4运行得很好。嗯,我对py3k版本的看法是错误的。这真令人费解。你能试试
导入线程
线程。在2.7 shell中分配锁()
,看看会发生什么吗?@PatrickCollins我刚刚用2.7上的线程尝试了你的建议,没有错误。@pyCthon如果你把对你有用的答案从你的问题中移出来,把它作为答案发布,然后标记为接受。这样,社区可以看到这个问题得到了有效解决:)
pip install --upgrade python-dateutil
Collecting python-dateutil
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
    100% |████████████████████████████████| 194kB 484kB/s 
Requirement already up-to-date: six>=1.5 in /home/alex/anaconda3/lib/python3.6/site-packages (from python-dateutil)
Installing collected packages: python-dateutil
  Found existing installation: python-dateutil 1.5
    Uninstalling python-dateutil-1.5:
      Successfully uninstalled python-dateutil-1.5
Successfully installed python-dateutil-2.6.0