[Tutor] Do not understand why test is running.
boB Stepp
robertvstepp at gmail.com
Mon Aug 24 05:09:53 CEST 2015
On Sun, Aug 23, 2015 at 11:47 AM, Peter Otten <__peter__ at web.de> wrote:
> boB Stepp wrote:
>
>> On Sat, Aug 22, 2015 at 3:18 AM, Peter Otten <__peter__ at web.de> wrote:
>>> boB Stepp wrote:
>> ... I was not in the directory, E:\Projects\mcm. It is my
>> understanding that if I start in a particular directory when I invoke
>> Python, then it looks in that location first in PYTHONPATH.
>
> No, it looks in the location of the script, not in the working directory:
[...]
> You have to add the working directory explicitly, e. g.:
>
> $ PYTHONPATH=. python3 sub/main.py
> hello
Applying your wisdom to my remaining question, before I was doing this
unsuccessfully:
E:\Projects\mcm>py e:\Projects\mcm\test\db\test_manager.py
Traceback (most recent call last):
File "e:\Projects\mcm\test\db\test_manager.py", line 16, in <module>
import mcm.db.manager
ImportError: No module named 'mcm'
But if I set the PYTHONPATH to e:/Projects/mcm as you seem to be
suggesting, gives:
E:\Projects\mcm>set PYTHONPATH=e:/Projects/mcm;
E:\Projects\mcm>py e:\Projects\mcm\test\db\test_manager.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Success! Thanks, Peter! You really clarified a LOT of points that I
just was spinning my wheels uselessly on.
>> Peter said earlier in this thread:
>>
>> ------------------------------------------------
>> If you want to trigger the
>>
>> if __name__ == "__main__": ...
>>
>> you have to invoke the test script with
>>
>> py ./mcm/test/db/test_manager.py
>>
>> the same way you would invoke any other script.
>> -------------------------------------------------
>>
>> If I try this or begin in E:\Projects\mcm and type py
>> ./test/db/test_manager.py I get
>>
>> E:\Projects\mcm>py ./test/db/test_manager.py
>> Traceback (most recent call last):
>> File "./test/db/test_manager.py", line 16, in <module>
>> import mcm.db.manager
>> ImportError: No module named 'mcm'
This final question is resolved by setting the PYTHONPATH environment
variable as above. I just want to note that this is *not* an instance
where a FULL path needs to be used to run test_manager.py as I had
earlier tried just above. Now after setting PYTHONPATH I get:
E:\Projects\mcm>py ./test/db/test_manager.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
I think this wraps up everything I was struggling with. Have I missed anything?
boB
More information about the Tutor
mailing list