Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 2.7.5: Struct() argument 1 must be string, not unicode #11

Closed
joachimmetz opened this issue Jun 13, 2018 · 5 comments
Closed

Python 2.7.5: Struct() argument 1 must be string, not unicode #11

joachimmetz opened this issue Jun 13, 2018 · 5 comments
Assignees
Labels

Comments

@joachimmetz
Copy link
Member

From: log2timeline/plaso#1917

Traceback (most recent call last):
  File "/bin/log2timeline.py", line 68, in <module>
    if not Main():
  File "/bin/log2timeline.py", line 54, in Main
    tool.ExtractEventsFromSources()
  File "/usr/lib/python2.7/site-packages/plaso/cli/log2timeline_tool.py", line 368, in ExtractEventsFromSources
    scan_context = self.ScanSource(self._source_path)
  File "/usr/lib/python2.7/site-packages/plaso/cli/storage_media_tool.py", line 1099, in ScanSource
    self._source_scanner.Scan(scan_context)
  File "/usr/lib/python2.7/site-packages/dfvfs/helpers/source_scanner.py", line 565, in Scan
    self._ScanNode(scan_context, scan_node, auto_recurse=auto_recurse)
  File "/usr/lib/python2.7/site-packages/dfvfs/helpers/source_scanner.py", line 366, in _ScanNode
    scan_node.path_spec, resolver_context=self._resolver_context)
  File "/usr/lib/python2.7/site-packages/dfvfs/resolver/resolver.py", line 55, in OpenFileEntry
    path_spec_object, resolver_context=resolver_context)
  File "/usr/lib/python2.7/site-packages/dfvfs/resolver/resolver.py", line 158, in OpenFileSystem
    resolver_helper = cls._GetResolverHelper(path_spec_object.type_indicator)
  File "/usr/lib/python2.7/site-packages/dfvfs/resolver/resolver.py", line 35, in _GetResolverHelper
    from dfvfs.resolver_helpers import manager
  File "/usr/lib/python2.7/site-packages/dfvfs/resolver_helpers/__init__.py", line 10, in <module>
    from dfvfs.resolver_helpers import cpio_resolver_helper
  File "/usr/lib/python2.7/site-packages/dfvfs/resolver_helpers/cpio_resolver_helper.py", line 10, in <module>
    from dfvfs.vfs import cpio_file_system
  File "/usr/lib/python2.7/site-packages/dfvfs/vfs/cpio_file_system.py", line 6, in <module>
    from dfvfs.lib import cpio
  File "/usr/lib/python2.7/site-packages/dfvfs/lib/cpio.py", line 43, in <module>
    class CPIOArchiveFile(data_format.DataFormat):
  File "/usr/lib/python2.7/site-packages/dfvfs/lib/cpio.py", line 59, in CPIOArchiveFile
    'cpio_binary_big_endian_file_entry')
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 1811, in CreateDataTypeMap
    return DataTypeMapFactory.CreateDataTypeMapByType(data_type_definition)
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 1829, in CreateDataTypeMapByType
    return data_type_map_class(data_type_definition)
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 1342, in __init__
    data_type_definition, self._data_type_map_cache)
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 1542, in _GetMemberDataTypeMaps
    member_definition)
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 1829, in CreateDataTypeMapByType
    return data_type_map_class(data_type_definition)
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 217, in __init__
    self._operation = self._GetByteStreamOperation()
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/data_maps.py", line 150, in _GetByteStreamOperation
    return byte_operations.StructOperation(format_string)
  File "/usr/lib/python2.7/site-packages/dtfabric/runtime/byte_operations.py", line 55, in __init__
    'with error: {0!s}').format(exception))
dtfabric.errors.FormatError: Unable to create struct object from data type definition with error: Struct() argument 1 must be string, not unicode
@ericzinnikas
Copy link

FWIW, removing from __future__ import unicode_literals from runtime/byte_operations.py and runtime/data_maps.py seems to let me use plaso successfully with Python 2.7.5

@joachimmetz
Copy link
Member Author

@ericzinnikas thx for the suggestion, however with python 2 prior to 2.10 containing various ssl related bugs and the expected end of life of python 2 in 2020, I really would encourage using a more recent version of python.

@ericzinnikas
Copy link

Yup! Just using that to tide me over until we upgrade.

@joachimmetz joachimmetz self-assigned this Dec 14, 2018
@joachimmetz
Copy link
Member Author

joachimmetz commented Dec 14, 2018

With the Python 2 deprecation on the horizon and 2.7.5 being really, REALLY, REALLY out dated (Python 2.7.5 was released on May 15, 2013). This issue will not be fixed. Leaving it open for now, as an FYI.

@joachimmetz
Copy link
Member Author

Python 2 is end of life, closing issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants