我使用IntelliJ与Python插件和远程解释器功能与我的Vagrant VM进行通信.它正确设置远程解释器以使用我的VM解释器.但是,我在我的VM中使用自定义PYTHONPATH,我希望IntelliJ识别该路径并在开发时将模块包含在该路径中.
如何配置IntelliJ/PyCharm的远程解释器以在VM上使用自定义PYTHONPATH?
我的代码是:
import scriptlib.abc
import scriptlib.xyz
def foo():
... some operations
Run Code Online (Sandbox Code Playgroud)
但是scriptlib在其他目录中,所以我必须在环境变量"PYTHONPATH"中包含该目录.
无论如何,我可以在导入语句执行之前首先在环境变量"PYTHONPATH"中添加scriptlib目录,如:
import sys
sys.path.append('/mypath/scriptlib')
import scriptlib.abc
import scriptlib.xyz
def foo():
... some operations
Run Code Online (Sandbox Code Playgroud)
如果是,那么该值仅用于该命令提示符还是全局?
提前致谢
在开发模式下,我有以下目录树:
| my_project/
| setup.py
| my_project/
| __init__.py
| main.py
| conf/
| myproject.conf
Run Code Online (Sandbox Code Playgroud)
我使用ConfigParser来解析myproject.conf文件.
在我的代码中,使用良好的路径加载文件很容易: my_project/conf/myproject.conf
问题是:当我使用setup.py安装我的项目时,配置文件位于(感谢setup.py)/etc/my_project/myproject.conf和我的应用程序中/usr/lib/python<version>/site-packages/my_project/.
如何my_project/conf/myproject.conf在"生产"模式下在项目中引用我的文件,并my_project/conf/myproject.conf在"devel"模式下引用本地文件().
另外,如果可能的话,我想要便携式(例如在Windows上工作).
这样做的好习惯是什么?
我想
import sys
sys.path.append("/home/me/mydir")
Run Code Online (Sandbox Code Playgroud)
将一个dir附加到我的pythonpath
如果我打印sys.path我的目录在那里.
然后我打开一个新命令,它就不存在了.
但不知何故,Python无法导入我保存在该目录中的模块.
我究竟做错了什么?
我读过.profile或.bash_profile就可以了.
我必须添加:
PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH
Run Code Online (Sandbox Code Playgroud)
为了使它工作?
无处不在,我看到Python代码使用import sys或导入模块import mymodule
如果没有提供目录或路径,解释器如何找到正确的文件?
在Jupyter我没有加载我自己的小模块但是在python/bpython中一切都很好.打字时
import sys
print(sys.path)
Run Code Online (Sandbox Code Playgroud)
我的模块的路径不会在Jupyter中显示,但在python/bpython中它仍然存在.
我在用:
最相似的问题是这个 无法在jupyter笔记本中导入模块; 错误的sys.path
如何配置Jupyter自动加载我的模块?
debian@debian:~$ echo $PYTHONPATH
/home/qiime/lib/:
debian@debian:~$ python
Python 2.7.3 (default, Jan 2 2013, 16:53:07)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.7/dist-packages/feedparser-5.1.3-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/stripogram-1.5-py2.7.egg', '/home/qiime/lib',
'/home/debian', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-
dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']
Run Code Online (Sandbox Code Playgroud)
如何在bash中获得所有pythonpath输出?
为什么 PYTHONPATH不能得到所有这些?
这是目录结构:
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Run Code Online (Sandbox Code Playgroud)
如何将bar.py导入foo.py?
我想只为python2添加一个特定的库路径.然而,在添加export PYTHONPATH="/path/to/lib/"到my .bashrc之后,执行python3会收到错误:您的PYTHONPATH指向Python 2.x的site-packages目录但您运行的是Python 3.x!
我认为这是由于python2和python3共享公共PYTHONPATH变量.
那么,我可以PYTHONPATH分别为python2和python3 设置不同的变量.如果没有,我如何将库路径专门添加到特定版本的python?
我最近遇到了python ImportError的问题,在我的本地计算机上运行但在CI服务器上找不到该模块.我通过交换解决了这个问题,sys.path.append(path)在我的脚本sys.path.insert(0, path)哪里path是字符串模块的位置.
由于这是我的模块而不是已安装的软件包(相关问题),为什么路径的顺序可以解决这个问题?
pythonpath ×10
python ×9
path ×2
add ×1
configparser ×1
import ×1
jupyter ×1
linux ×1
macos ×1
pycharm ×1