Message226965
| Author |
simonmweber |
| Recipients |
simonmweber |
| Date |
2014年09月16日.21:00:26 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1410901227.13.0.545813784004.issue22425@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
When dealing with implicit relative imports of the form "import <dotted_as_names> as...", the 2to3 import fixer will rewrite them as "from . import <dotted_as_names> as...".
This is invalid syntax. Here's an example:
$ tree package/
package/
├── __init__.py
├── rootmod.py
└── subpackage
├── __init__.py
└── mod.py
1 directory, 4 files
$ cat package/rootmod.py # this is the only nonempty file
import subpackage.mod as my_name
$ python package/rootmod.py
$ 2to3 -w -f import package/
RefactoringTool: Refactored package/rootmod.py
--- package/rootmod.py (original)
+++ package/rootmod.py (refactored)
@@ -1 +1 @@
-import subpackage.mod as my_name
+from . import subpackage.mod as my_name
RefactoringTool: Files that were modified:
RefactoringTool: package/rootmod.py
$ python package/rootmod.py
File "package/rootmod.py", line 1
from . import subpackage.mod as my_name
^
SyntaxError: invalid syntax
Probably the easiest way to rewrite this is "from .subpackage import mod as my_name". |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2014年09月16日 21:00:27 | simonmweber | set | recipients:
+ simonmweber |
| 2014年09月16日 21:00:27 | simonmweber | set | messageid: <1410901227.13.0.545813784004.issue22425@psf.upfronthosting.co.za> |
| 2014年09月16日 21:00:27 | simonmweber | link | issue22425 messages |
| 2014年09月16日 21:00:26 | simonmweber | create |
|