Message155002
| Author |
Ben.Darnell |
| Recipients |
Ben.Darnell |
| Date |
2012年03月06日.06:53:22 |
| SpamBayes Score |
2.6532192e-05 |
| Marked as misclassified |
No |
| Message-id |
<1331016803.5.0.715499259579.issue14208@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I have a script which attempts to re-invoke itself using sys.argv, but it fails when run with "python -m package.module". The problem is that the handling of -m (via the runpy module) rewrites sys.argv as if it were run as "python package/module.py", but the two command lines are not equivalent: With -m the current directory is inserted at the head of sys.path, but without -m it's the directory containing module.py. The net effect is that the initial run of "python -m package.module" works as expected, but when it re-runs itself as "python package/module.py" the imports from module.py are effectively relative instead of absolute.
One possible solution would be to provide an immutable sys.__argv__ (by analogy with sys.__stdout__ and friends). |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2012年03月06日 06:53:23 | Ben.Darnell | set | recipients:
+ Ben.Darnell |
| 2012年03月06日 06:53:23 | Ben.Darnell | set | messageid: <1331016803.5.0.715499259579.issue14208@psf.upfronthosting.co.za> |
| 2012年03月06日 06:53:22 | Ben.Darnell | link | issue14208 messages |
| 2012年03月06日 06:53:22 | Ben.Darnell | create |
|