Assume a Python package (eg, MyPackage
) that consists of several modules (eg, MyModule1.py
and MyModule2.py
) and a set of unittests (eg, in MyPackage_test.py
).
.
├── MyPackage
│ ├── __init__.py
│ ├── MyModule1.py
│ └── MyModule2.py
├── README.md
├── requirements.txt
├── setup.py
└── tests
└── MyPackage_test.py
I would like to import functions of MyModule1.py
within the unittests of MyPackage_test.py
. Specifically, I would like to import the functions both before as well as after package installation via setup.py install MyPackage
.
Currently, I am using two separate commands, depending on the state before or after package installation:
# BEFORE
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'MyPackage'))
# AFTER
import MyPackage
Can this be done with a single command?
Option 1 :
It seems that the following command does what I need:
sys.path.append(os.path.join(__file__.split(__info__)[0] + __info__), __info__)
Option 2 :
Depending on the location of __init__.py
, this also works:
sys.path.append(os.path.dirname(os.path.split(inspect.getfile(MyPackage))[0]))
Option 3 :
Moreover, the ResourceManager API seems to offer additional methods.
in pycharm IDE you can can import method easily.by setting the working directory to the folder which contains all files.
And, then in MyPackage __init__.py
file import all the function from MyModule1.py
and MyModule2.py
.
then in MyPackage_test.py you can use
import MyPackage
from MyPackage import xyz
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.