简体   繁体   中英

Python - Import package modules before as well as after setup.py install

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM