问题描述:

mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本。

使用Pycharm开发Python项目没有遇到什么问题。但是在java项目中调用py脚本的话,就有问题了。我的项目需要将Pycharm开发好的py脚本(多个.py文件),拷贝到java项目中,在java项目(是用IDEA开发工具)中,如果直接是用鼠标右键运行py脚本的话是没有问题的,将py脚本依赖的第三方库直接拷贝到py脚本所在地目录下然后再用java去调用也没有问题,但如果py脚本中导入了python的第三方库,就会有问题,具体表现为java调用后控制台没有任何输出,也不报错。

解决方式主要参考了这篇博客:

https://www.cnblogs.com/BlueSkyyj/p/9455955.html

下面是我的mac笔记本中的python环境,重点在于配置正确的python环境PATH变量:

B000000067100V:~ v_shiyanjun$ which python
/Users/v_shiyanjun/anaconda3/bin/python
B000000067100V:~ v_shiyanjun$ /Users/v_shiyanjun/anaconda3/bin/python -V
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python --version
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python3 --version
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python -V
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python3 -V
Python 3.7.0
B000000067100V:~ v_shiyanjun$ cat ~/.bash_profile
export M2_HOME=/Users/v_shiyanjun/soft/apache-maven-3.5.4
export PATH=$PATH:$M2_HOME/bin
export PATH=$PATH:/usr/local/mysql/bin # Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
PATH="/usr/local/lib/python3.7/site-packages:${PATH}"
export PATH

# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/v_shiyanjun/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/Users/v_shiyanjun/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/v_shiyanjun/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/Users/v_shiyanjun/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
B000000067100V:~ v_shiyanjun$
执行 source ~/.bash_profile 立即生效

设置完环境变量后,我们 想要执行python3,仍然需要 输入python3 or python3.7方可,也挺麻烦,可以通过设置软连接来实现

设置软连接

命令:

sudo ln -f /usr/local/bin/python3.7 /usr/local/bin/python

即通过这个设置,可以实现输入python 就是执行的python3.7

Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决的更多相关文章

  1. java中怎么调用python 脚本

    调用方法: import java.io.BufferedReader; import java.io.InputStreamReader; public class PythonInvoke { p ...

  2. Mac上微信小程序官方开发工具卡死的问题

    Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...

  3. win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件

    win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件   1.去git上下载react-devtools文件到本地,https://github.com/fac ...

  4. PHPStorm.WebStrom等系列官方开发工具配置本地项目与运程服务器同步

    PHPStorm.WebStrom配置本地项目与运程服务器同步 说明:PHPStorm.WebStrom等官方的系统开发工具配置本地项目与运程服务器同步的方法都基本一致没有,几乎没有什么不同之处,我们 ...

  5. Intellij Idea 工具在java文件中如何避免 import .*包

    Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...

  6. 在Java项目中整合Scala

    Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...

  7. 实战派 | Java项目中玩转Redis6.0客户端缓存!

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...

  8. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  9. Java项目中使用log记录日志的一些总结

    本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...

随机推荐

  1. linux 学习笔记 TAR包管理

    >显示gong.tar 文件内容 #tar tf gong.tar ./epuinfo.txt ./smart/ ./smart/smartsuite-2.1-2.i386.rpm ./smar ...

  2. Vue proxyTable 解决开发环境的跨域问题

    在 config/index.js 配置文件中,添加 dev: { proxyTable: { '/ssp/withdraw': { target: 'http://dev.home.phiwifi. ...

  3. NOIP2017 题解(给自己看的) --有坑要填

    目录 D1T1精妙证明: D1T3 D2T2 几道水题就不写了.... D1T1精妙证明: 把ax+by = z 的z按照模a剩余系分类 由于\((a,b)=1\)所以对于每个\(k\in[0, a) ...

  4. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  5. 修改mybatis plus Generator模板生成字段注释枚举常量

    修改mybatis plus Generator模板生成字段注释枚举常量 本文基于最新的mybatis-plus 3.0.1版本源码修改,如果使用其它版本,处理方式也类似,主要是生成Entity的Fr ...

  6. Urozero Autumn 2016. UKIEPC 2016

    B. Build a Boat 首先求出每块船舱的面积$S$,然后进行$m$次二分,得到每个切割线的位置. 为了计算某个切割线形成的区域的面积,需要将多边形整理成上边界和下边界,分别二分出断点位置,中 ...

  7. C C++ 数字后面加 LL是什么意思

    long long类型,在赋初值的时候,如果大于2的31次方-1,那么后面需要加上LL

  8. Asp.Net HttpPostedFile和base64两种上传图片(文件)方式

    之前上传图片基本都是用的HttpPostedFile方式获取图片,这次因为需求关系,要对准备上传的图片进行删除,最后提交的时候才去保存图片到服务器, 找了下资料,html5有个新的东西出来,js 里面 ...

  9. Java示例:如何执行进程并读取输出

    下面是一个例子,演示如何执行一个进程(类似于在命令行下键入命令),读取进程执行的输出,并根据进程的返回值判断是否执行成功.一般来说,进程返回 0 表示执行成功,其他值表示失败. import java ...

  10. Linux下修改环境变量,不小心改错,找不到命令解决办法

    PATH改错了找不到命令 解决方法: 重新定义PATH export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/us ...