Fabian Pedregosa wrote:
> Ondrej Certik wrote:
>> Hi,
>>
>> I fixed the import problems, so things should now work in python3,
>> except that the 2to3 tool breaks. :(
>>
>> checkout my py3-prepare branch:
>>
>> http://github.com/certik/sympy/tree/py3-prepare
>>
>> and run the 2to3 tool:
>>
>> $ python3.1 ~/ext/Python-3.1/Tools/scripts/2to3 . > p
>> RefactoringTool: Skipping implicit fixer: buffer
>> RefactoringTool: Skipping implicit fixer: idioms
>> RefactoringTool: Skipping implicit fixer: set_literal
>> RefactoringTool: Skipping implicit fixer: ws_comma
>> RefactoringTool: Can't parse ./data/IPython/ipythonrc-sympy:
>> ParseError: bad input: type=1, value='ipythonrc', context=(' ', (25,
>> 8))
>> RefactoringTool: Can't parse
>> ./doc/src/modules/galgebra/GA/BasicGAtest.py: ParseError: bad input:
>> type=5, value=' ', context=('', (1, 0))
>> RefactoringTool: Can't parse
>> ./doc/src/modules/galgebra/GA/conformalgeometryGAtest.py: ParseError:
>> bad input: type=5, value=' ', context=('', (1, 0))
>> RefactoringTool: Can't parse
>> ./doc/src/modules/galgebra/GA/headerGAtest.py: ParseError: bad input:
>> type=0, value='', context=('\n', (26, 0))
>> RefactoringTool: Can't parse
>> ./doc/src/modules/galgebra/GA/hyperbolicGAtest.py: ParseError: bad
>> input: type=5, value=' ', context=('', (1, 0))
>> RefactoringTool: Can't parse
>> ./doc/src/modules/galgebra/GA/reciprocalframeGAtest.py: ParseError:
>> bad input: type=5, value=' ', context=('', (1, 0))
>> Traceback (most recent call last):
>> File "/home/ondrej/ext/Python-3.1/Tools/scripts/2to3", line 6, in <module>
>> sys.exit(main("lib2to3.fixes"))
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/main.py", line 132, in main
>> options.processes)
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/refactor.py", line
>> 544, in refactor
>> items, write, doctests_only)
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/refactor.py", line
>> 207, in refactor
>> self.refactor_dir(dir_or_file, write, doctests_only)
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/refactor.py", line
>> 225, in refactor_dir
>> self.refactor_file(fullname, write, doctests_only)
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/refactor.py", line
>> 584, in refactor_file
>> *args, **kwargs)
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/refactor.py", line
>> 264, in refactor_file
>> write=write, encoding=encoding)
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/refactor.py", line
>> 363, in processed_file
>> self.print_output(diff_texts(old_text, new_text, filename))
>> File "/home/ondrej/ext/Python-3.1/Lib/lib2to3/main.py", line 47, in
>> print_output
>> print(line)
>> UnicodeEncodeError: 'ascii' codec can't encode character '\u03b1' in
>> position 32: ordinal not in range(128)
>>
>>
>> The tool from python2.6 works, but fails to convert the imports, so it
>> doesn't work in python3. (they fixed that in later 2to3 tool that is
>> in python3.1, but it fails with the above unicode problem). If someone
>> could look into that, it'd be awesome. I think we are very close to
>> gettting sympy run in python3.
>
> That's because this bug in 2to3: http://bugs.python.org/issue5093
>
> Using the workaround it all gets converted, and I pushed my changes to
> http://fseoane.net/git/sympy.git, branch py3
>
> However, I am getting some problems with string.strip() when importing
> sympy:
>
> >>> import sympy
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "sympy/__init__.py", line 23, in <module>
> from sympy.core import *
> File "sympy/core/__init__.py", line 4, in <module>
> from .basic import Basic, S, C, sympify
> File "sympy/core/basic.py", line 3, in <module>
> import sympy.mpmath as mpmath
> File "sympy/mpmath/__init__.py", line 3, in <module>
> from .mptypes import (
> File "sympy/mpmath/mptypes.py", line 40, in <module>
> from string import strip
> ImportError: cannot import name strip
>
> I suppose we should be using string.format or something similar,
> http://docs.python.org/3.1/library/string.html
update, I got this to work, just needed to use the classmethod strip()
instead of the one in the string module. Did some other fixes (it's in
my repo), but now I am blocked on this:
>>> import sympy
Traceback (most recent call last):
File "sympy/core/decorators.py", line 73, in __sympifyit_wrapper
return func(a, b)
File "sympy/core/basic.py", line 662, in __rmul__
return Mul(other, self)
File "sympy/core/cache.py", line 82, in wrapper
return func_cache_it_cache[k]
TypeError: unhashable type: 'Integer'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "sympy/__init__.py", line 25, in <module>
from .polys import *
File "sympy/polys/__init__.py", line 2, in <module>
from .monomial import monomials, monomial_count
File "sympy/polys/monomial.py", line 6, in <module>
from sympy.functions import factorial
File "sympy/functions/__init__.py", line 11, in <module>
from . import special
File "sympy/functions/special/__init__.py", line 8, in <module>
from . import polynomials
File "sympy/functions/special/polynomials.py", line 102, in <module>
class chebyshevu(PolynomialSequence):
File "sympy/functions/special/polynomials.py", line 121, in chebyshevu
@recurrence_memo([S.One, 2*_x])
File "sympy/core/decorators.py", line 100, in __sympifyit_wrapper
return func(a, b)
File "sympy/core/basic.py", line 662, in __rmul__
return Mul(other, self)
File "sympy/core/cache.py", line 82, in wrapper
return func_cache_it_cache[k]
TypeError: unhashable type: 'Integer'
>
>> Ondrej
>>
>
>
--
http://fseoane.net/blog/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sympy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---