在OS X Yosemite 10.10.3上安装pymssql时收到以下错误 - 有没有人得到以下错误?我使用FreeTDS(v0.91.112)版本7.1和Python 2.7.6 - tsql实用程序连接到SQL数据库没有问题.
sudo pip install pymssql
错误:
Command "/usr/bin/python -c "import setuptools, tokenize;
__file__='/private/tmp/pip-build-T5Usla/pymssql/setup.py';
exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n',
'\n'), __file__, 'exec'))" install --record /tmp/pip-uZGqK4-record/install-
record.txt --single-version-externally-managed --compile" failed with error
code 1 in /private/tmp/pip-build-T5Usla/pymssql
Run Code Online (Sandbox Code Playgroud) 我的意思是:
__init__.py文件和所有正确的文档字符串(模块,函数,类和方法级文档字符串)。但是,当我执行时help(mypackage),提供的唯一帮助是该顶级__init__.py模块提供的帮助。通常,包级的帮助并不包括所有基础文档字符串的,但有时它。
我想确保我嵌入了所有基础文档字符串。
例如,在numpy软件包中,即使未在顶级提供,所有基本文档字符串也可在命令提示符的帮助中找到__init__.py。
即我可以输入
>>> help(numpy)
Run Code Online (Sandbox Code Playgroud)
并查看所有文档,包括在dunder init模块外部定义的文档。
但是,许多其他软件包,包括诸如pandas软件包之类的流行软件包,并未捕获所有基础文档。
即输入
>>> help(pandas)
Run Code Online (Sandbox Code Playgroud)
仅向我提供中定义的文档__init__.py。
我想创建镜像的软件包级文档numpy。
我试着numpy浏览一下它是如何执行此魔术的,没有运气。我已经执行过Google搜索,但似乎无法用短语表达此问题并获得任何正当的链接。
我看到以下现象,似乎无法弄清楚,并没有通过档案搜索找到任何东西:
如果我输入:
>>> if re.search(r'\n',r'this\nis\nit'):<br>
... print 'found it!'<br>
... else:<br>
... print "didn't find it"<br>
...
Run Code Online (Sandbox Code Playgroud)
我会得到:
didn't find it!
Run Code Online (Sandbox Code Playgroud)
但是,如果我输入:
>>> if re.search(r'\\n',r'this\nis\nit'):<br>
... print 'found it!'<br>
... else:<br>
... print "didn't find it"<br>
...
Run Code Online (Sandbox Code Playgroud)
然后我会得到:
found it!
Run Code Online (Sandbox Code Playgroud)
(第一个在r'\n'上只有一个反斜杠,而第二个在r'\\n'上连续有两个反斜杠......即使这个解释器正在删除其中一个.)
我可以猜到正在进行,但我不明白为什么会发生这种情况的官方机制:在第一种情况下,我需要逃避两件事:正则表达式和特殊字符串."Raw"让我逃避特殊字符串,但不是正则表达式.
但是第二个字符串中永远不会有正则表达式,因为它是匹配的字符串.所以只需要逃脱一次.
但是,某些东西对我来说似乎并不一致:我怎么能确保在第一种情况下字面上的字符确实是真的?我可以输入rr''吗?或者我必须确保我逃避两次?在类似的情况下,我如何确保变量是按字面意思(或不是字面意义)?例如,如果我有一个变量tmp ='this \nis \nmy \nhome',我真的想找到斜杠和'n'的文字组合,而不是换行符怎么办?
谢谢!
麦克风
提前道歉,这是我真正想到的,我可以在网上找到,但我遇到了麻烦.
在Python中,在标题部分,我看到有时人们会用美元符号($)包装他们的文字.从示例来看,似乎这是一个指向填充自动更新信息的指针(可能是通过源代码控制?),但我不明白它是如何工作的.
例如:
__version__ = '$Revision: 4799 $'.split()[1]
__date__ = '$Date: 2006-09-25 11:09:02 -0400 (Mon, 25 Sep 2006) $'.split()[1]
__author__ = 'John Doe FIX: put in the authors name'
Run Code Online (Sandbox Code Playgroud)
是我在(Python示例文档模板 )中找到的 示例.所以$围绕着版本(随着时间的推移而改变)和日期(也会改变).假设它是某种指针,总是捕获有关版本,日期等的最新信息,有人可以指出我这是如何工作的吗?哪个源代码控制软件使用这种语法?跨语言是否相同?
谢谢!
使用 PySpark 的 ML 模块,经常会发生以下步骤(在数据清理之后等):
摘取一段精简的代码片段:
predictions = model.transform(test_df)
Run Code Online (Sandbox Code Playgroud)
该predictions数据帧将仅具有预测(以及概率,可能还有预测的转换)。但它不会包含原始数据集。
对我来说,如何将原始数据集(甚至转换后的数据集test_df)和预测结合起来并不明显;没有可供连接的共享列,并且对于大型数据集添加索引列似乎相当棘手。
对于大型数据集,比如我正在使用的数据集,我尝试了这里的建议:
test_df = test_df.repartition(predictions.rdd.getNumPartitions())
joined_schema = StructType(test_df.schema.fields + predictions.schema.fields)
interim_rdd = test_df.rdd.zip(predictions.rdd).map(lambda x: x[0] + x[1])
full_data = spark.createDataFrame(interim_rdd, joined_schema)
full_data.write.parquet(my_predictions_path, mode="overwrite")
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这个有两个原因:
Caused by: org.apache.spark.SparkException: Can only zip RDDs with same number of elements in each partition
我不想使用monotonically_increasing_id有时给出的建议,因为我的数据集太大而不允许这样做。
这似乎很重要:我如何在无法将预测与原始目标进行比较的情况下报告任何模型质量。其他人是怎么做到这一点的??
docker-compose.yml文件。requests包来访问 API 。我可以使用与尝试命中它的 Python 包中的代码完全相同的代码从外部访问应用程序容器,并且它可以工作,但它在包中不起作用。
docker-compose.ymlversion: "3.8"
services:
read-api:
build:
context: ./read-api
depends_on:
- "toy-api"
networks:
- ds-net
toy-api:
build:
context: ./api
networks:
- ds-net
ports:
- "80:80"
networks:
ds-net:
Run Code Online (Sandbox Code Playgroud)
requests代码from requests import Session
def post_to_api(session, raw_input, path):
print(f"The script is sending: {raw_input}")
print(f"The script is sending it to: {path}")
response = session.post(path, json={"payload": raw_input})
print(f"The script received: {response.text}")
def get_from_api(session, …Run Code Online (Sandbox Code Playgroud) 我似乎找不到任何文档,但我想了解如何执行以下操作:
part-...并将_SUCCESS文件写入文件夹。_SUCCESS。Spark 是否有这样的原生方法来触发该异常?
在此先感谢您的帮助.我是python的新手,但对脚本来说并不是特别新手.我正在尝试运行一个简单的自动化电子邮件程序,但电子邮件模块似乎在我们的系统上安装不正确(我没有在python示例中描述的75%的函数,只有"message_from_string"和"message_from_file")并且smtplib对于我需要的东西过于复杂.
事实上,在简单的bash术语中,我只需要:
/bin/email -s "blah" "recipients" < file.with.body.info.txt
Run Code Online (Sandbox Code Playgroud)
要么,
echo "my body details" | /bin/email -s "blah" "recipients"
Run Code Online (Sandbox Code Playgroud)
这样我就可以避免只是为了发送消息而写入文件.
我尝试使用子进程,无论是调用还是Popen,并且我最终能够使用的唯一方法是使用:
subprocess.call('/bin/mail -s "blah" "recipients" < file.with.body.info.txt', shell=True)
Run Code Online (Sandbox Code Playgroud)
我特别不喜欢这个方法的一些事情:
(1)我无法将事物分解为列表或元组,因为它应该起作用,因此我失去了子进程的全部优势,正如我所理解的那样,以保证事物的安全.如果我试过:
subprocess.call(['/bin/mail', '-s', subjVariable, recipVariable, '<', 'file.with.body.info.txt'], shell=True)
Run Code Online (Sandbox Code Playgroud)
它会失败.同样,如果我尝试使用管道"|"而不是从文件中读取,它将失败.如果我使用'-cmd'而不是管道,它也失败了."失败"通常是它会读取'<'和'file.with.body.info.txt',好像它们是进一步的收件人一样.换句话说,无论我是否说"shell = True",子进程都无法将调用中的特殊字符解释为它们的特殊字符.'<'未被识别为来自文件等的输入,除非我将所有内容保存在一个大调用中.
我理想的是能够做什么,因为它似乎更安全,更灵活,是这样的:
subprocess.call(['/bin/echo', varWithBody, '|', '/bin/mail', '-s', subjVariable, recipVariable,])
Run Code Online (Sandbox Code Playgroud)
但似乎管道根本没有用子进程理解,我无法弄清楚如何在python后面将事物一起管道.
有什么建议?除了试图解释如何使用'email'或'smtplib'模块之外,欢迎所有帮助.无论这个特定的应用程序,我真的想学习如何更好地使用子进程,以便我可以将不同的程序联系在一起.我的理解是python应该相当不错.
谢谢!麦克风
我正在使用Rails并将目录tmp和Gemfile添加到我的.gitignore.但每次我改变它,git status告诉我,它改变了.在两台机器上.在我的开发人员计算机和服务器上.有点烦人.
内容.gitignore:
.DS_Store
data/export/*.csv
tmp/*
*.rbc
*.sassc
.sass-cache
capybara-*.html
.rspec
/.bundle
/vendor/bundle
/log/*
/tmp/*
/db/*.sqlite3
/public/system/*
/coverage/
/spec/tmp/*
**.orig
config/*.yml
rerun.txt
pickle-email-*.html
Gemfile*
Run Code Online (Sandbox Code Playgroud) seaborn是一个漂亮的 Python 包,它在很大程度上充当matplotlib. 然而,它改变了,例如,matplotlib绘图对象上的方法来指导seaborn函数。
seaborn从绘图中删除任何脊柱(绘图的外边缘)despine() 。但我不能反其道而行之。
matplotlib如果我从一开始就完全使用的话,我似乎无法以标准方式重新创建脊柱。有没有办法做到这一点?我会怎样?
下面是一个例子。例如,我可以在图的底部和左侧添加书脊吗?
from sklearn import datasets
import pandas as pd
tmp = datasets.load_iris()
iris = pd.DataFrame(tmp.data, columns=tmp.feature_names)
iris['species'] = tmp.target_names[tmp.target]
iris.species = iris.species.astype('category')
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('darkgrid')
sns.boxplot(x='species', y='sepal length (cm)', data=iris_new)
plt.show()
Run Code Online (Sandbox Code Playgroud)
python ×8
apache-spark ×2
docker ×1
docstring ×1
exception ×1
git ×1
gitignore ×1
matplotlib ×1
numpy ×1
osx-yosemite ×1
package ×1
pymssql ×1
pyspark ×1
regex ×1
seaborn ×1
subprocess ×1